您的位置:首页 > 编程语言 > Go语言

跟着猫哥学Golang 14 - error

2016-02-11 15:36 459 查看

在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部。

error 类型实际上是抽象了 Error() 方法的 error 接口,Golang 使用该接口进行标准的错误处理。

type error interface {
Error() string
}


1. 通常的用法:

error在函数返回值的一部分,一般是放在最后。用来判断结果,配合Println调试程序。比如下面的例子。

package main

import "fmt"

func FuncErr(val1 int, val2 string) (res string, err error) {
// ...
return "something..", err
}

func main() {
if n, err := FuncErr(100, "Good"); err != nil {
// 错误处理
fmt.Println(err)
}else {
fmt.Println(n)
}
}


2. 也可以自定义一个错误,参考具体代码如下:

package main

import "fmt"

type myError struct {
val1 int
err string
}

func (this myError) Error() string {
return fmt.Sprintf("Number should bigger than 0\n")
}

func positiveNum (num int) (bool, error) {
if (num > 0) {
return true, nil
} else {
return false, myError{val1: num}
}
}

func main() {
if result, err := positiveNum(-1); err !=nil {
fmt.Println("Error: ", err)
}else{
fmt.Println("Number: ", result)
}
}

# 输出:
Error:  Number should bigger than 0

如果positiveNum函数的入口参数是个正数,结果显而易见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: