Golang通常有三种错误处理方式:错误哨兵(Sentinel Error)、错误类型断言和记录错误调用栈。错误哨兵指的是用特定值的变量作为错误处理分支的判定条件。错误类型用于路由错误处理逻辑,和错误哨兵有异曲同工的作用,由类型系统来提供错误种类的唯一性。错误黑盒指的是不过分关心错误类型,将错误返回给上层;当需要采取行动时,要针对错误的行为进行断言,而非错误类型。
本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
golang没有提供try-catch
类似的错误处理机制,在设计层面采用了C语言风格的错误处理,通过函数返回值返回出错的错误信息,具体样例如下:
func ReturnError() (string, error) { return "", fmt.Errorf("Test Error") } func main() { val, err := ReturnError() if err != nil { panic(err) } fmt.Println(val) }
登录后复制
上面的例子是一个基本的错误处理样例,生产环境中执行的调用栈往往非常复杂,返回的error
也各式各样,常常需要根据返回的错误信息确定具体的错误处理逻辑。【
© 版权声明
内容转载于网络,请读者自行鉴别
THE END