Go 错误处理
Go 错误处理
- error类型是一个接口类型,这是它的定义:
type error interface {
Error() string
}
Go 捕获异常
传统捕捉异常的方式
try
catch
finally
go语言
引入了defer、panic、recover
1.Go程序抛出一个panic异常,在defer中通过recover捕获异常,然后处理
案例
package main
import "fmt"
func test() {
//在函数退出前,执行defer
//捕捉异常后,程序不会异常退出
defer func() {
err := recover() //内置函数,可以捕捉到函数异常
if err != nil {
//这里是打印错误,还可以进行报警处理,例如微信,邮箱通知
fmt.Println("err错误信息:", err)
}
}()
//如果没有异常捕获,直接报错panic,运行时出错
num1 := 10
num2 := 0
res := num1 / num2
fmt.Println("res结果:", res)
}
func main() {
test()
fmt.Println("如果程序没退出,就走我这里")
}
打印结果
err错误信息: runtime error: integer divide by zero
如果程序没退出,就走我这里
Exiting.
本文转自 https://learnku.com/articles/62088,如有侵权,请联系删除。
浏览 (633)
点赞
收藏
我习惯了Java,学习Go语言的时候这个异常处理让我觉得很别扭。 ????