Go 错误处理
捕获错误的代码
//Go 语言中没有try catch这样麻烦的异常捕获方法 //如果需要捕获异常的话需要使用 defer panic recover() 来实现 func main() { fmt.Println("c") defer func() { // 必须要先声明defer,否则不能捕获到panic异常 fmt.Println("d") if err := recover(); err != nil { fmt.Println(err) // 这里的err其实就是panic传入的内容 } fmt.Println("e") }() f() //开始调用f fmt.Println("f") //这里开始下面代码不会再执行 } func f() { fmt.Println("a") panic("异常信息") fmt.Println("b") //这里开始下面代码不会再执行 } -------output------- c a d 异常信息 e
自定义错误
总结
一旦出现了错误,将会调用panic系列函数 -> 退出当前gorouting -> defer 调用出栈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步