wordpress 仿站 菜单,广东省特色专业建设网站,国际贸易app平台,网络公司排行榜在 Golang 中#xff0c;错误处理机制一般是函数返回时使用的#xff0c;是对外的接口#xff0c;而异常处理机制 panic-recover 一般用在函数内部。 error 类型介绍 error 类型实际上是抽象了 Error() 方法的 error 接口#xff0c;Golang 使用该接口进行标准的错误处理。…在 Golang 中错误处理机制一般是函数返回时使用的是对外的接口而异常处理机制 panic-recover 一般用在函数内部。 error 类型介绍 error 类型实际上是抽象了 Error() 方法的 error 接口Golang 使用该接口进行标准的错误处理。 type error interface {Error() string
} 一般情况下如果函数需要返回错误就将 error 作为多个返回值中的最后一个但这并非是强制要求。参考模型 func Foo(param int) (n int, err error) {// ...
}if n, err : Foo(0); err ! nil {// 错误处理
} 这就是 error 的使用方法与其他语言的异常相比Golang 的方法相对更加容易、直观。 代码1经典使用方法 package mainimport (errorsfmt
)func requireDual(n int) (int, error) {if n1 1 {return -1, errors.New(您输入不是双数) //生成一个简单的 error 类型}return n, nil
}func main() {if result, err : requireDual(101); err ! nil {fmt.Println(错误, err)} else {fmt.Println(结果, result)}
} 输出结果 错误 您输入不是双数 你有没有觉得 Golang 的这种错误的处理机制非常的简洁啊呵呵 代码2扩充下上面的代码带自定义参数的错误输出 package mainimport (fmt
)type dualError struct {Num intproblem string
}func (e dualError) Error() string {return fmt.Sprintf(参数不正确因为\%d\不是双数, e.Num)
}func requireDual(n int) (int, error) {if n1 1 {return -1, dualError{Num: n}}return n, nil
}func main() {if result, err : requireDual(101); err ! nil {fmt.Println(错误, err)} else {fmt.Println(结果, result)}
} 输出结果 错误 参数不正确因为101不是双数 转载于:https://www.cnblogs.com/bing-l/p/4065554.html