Go 错误处理

1 Apr 2025 | 2 分钟阅读

Go 没有像 Java 中 try/catch 这样的异常机制,我们不能在 Go 中抛出异常。

Go 使用一种不同的机制,称为defer-panic-and-recover 机制。

Go 通过返回一个 error 对象来处理函数和方法的简单错误。 error 对象可能是唯一的或最后一个返回值。如果函数中没有错误,则 error 对象为 nil。

我们应该始终在调用语句中检查错误,无论是否收到任何错误。

我们不应该忽略错误,这可能会导致程序崩溃。

go 检测和报告错误条件的方式是

  • 一个可能导致错误的函数返回两个变量:一个值和一个错误代码,成功时错误代码为 nil,出现错误条件时错误代码 != nil。
  • 在函数调用之后检查错误。如果发生错误 (if error != nil),则停止实际函数(或必要时整个程序)的执行。

Go 有预定义的错误接口类型

我们可以使用 error 包中的 error.New 定义错误类型,并提供适当的错误消息,例如

Go 错误示例

输出

Math: negative number passed to Sqrt
8

下一主题Go Recover