go语言错误处理
go语言错误处理
错误处理基本思路
1 | result, err := someFunction() //调用函数通常会返回一个值和一个错误对象。 |
自定义错误信息
1 | type MyError struct { |
错误处理方法
使用error包
1 | //假设这是一个模拟除法的函数,n是除数 |
日志记录
1 | if err != nil { |
错误传播(适用于函数调用) Wrap() 函数
1 | file, err := openFile() |
panic()和recover()
panic 会使程序立即停止,并输出错误信息
需要使用 recover 来捕获并处理这些错误
1 | defer func() { |
在使用 panic 时,需要注意以下几点:
panic 会导致当前函数的执行立即停止,但defer语句会被正常执行。
如果当前函数中没有捕获 panic 的 recover 语句,程序会从当前函数逐层向上返回,并终止程序的执行。
panic 传递的信息可以是任意类型的值,通常使用字符串或自定义的错误类型。
可以在 defer 语句中使用 panic,但必须在 panic 被触发前定义 defer 语句。
通常建议在顶层函数中使用 recover 来捕获并处理 panic,以防止程序意外终止。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 AliveRiver!
