Go 语言的错误处理
Go 语言的错误处理
提示
题眼: error、panic 和 fatal error
- Go 里最常见的错误处理方式是返回一个
error。 error是一个接口类型,定义为Error() string,通常用于表达业务或运行过程中的普通错误。- 当没有错误时,
error一般返回nil。 - 对于更严重、不可继续处理的异常,Go 还提供了
panic和recover机制。
重要
参考答案:
Go 语言里常见的错误处理大致有三类。第一类是 error,它本质上是一个接口,接口里定义了 Error() string 这个方法。业务代码里最常见的做法就是返回一个错误值,让调用方决定怎么处理。
第二类是 panic。它表示程序遇到了比较严重的问题,如果不处理,就会沿着调用栈一路往上冒,最后导致程序退出。我们可以在 defer 里配合 recover 把它拦下来。
第三类是 fatal error。这种错误通常来自运行时层面,比如死锁等问题,一旦出现,程序会直接终止,而且不能像 panic 那样被 recover 捕获。比如所有协程都阻塞住时,就可能报出死锁相关的 fatal error。
