ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
> golang没有try catch 使用defer+recover来处理异常 func test() int { defer func() { err := recover() //捕获异常 if err != nil { fmt.Println("err=", err) } }() num1 := 10 num2 := 0 res := num1 / num2 return res } > 自定义错误errors.New panic errors.new("错误说明"),会返回一个error类型的值 panic内置函数,接受一个interface{}类型的值(也就是任何值)作为参数,可以接收error类型的变量,输出错误信息,并退出程序 ``` package main import ( "errors" "fmt" ) func readConf(filename string) (err error) { if filename == "config.ini" { return nil     } return errors.New("文件名不正确") } func test02() { res := readConf("config1.ini") if res != nil { panic(res) //不继续往下执行     }     fmt.Println("test02()继续执行") } func main() { test02()     fmt.Println("main()继续执行") //此处无法执行 } ``` ![](https://img.kancloud.cn/9c/0a/9c0a1313a3100afff33a403ce7d33641_388x174.png)