错误处理
go语言没有异常,为了代码的优雅,也没有传统的try catch finally语法
package main
import "fmt"
func main() {
div(1, 0)
fmt.Println("--- main执行完毕 ---")
}
func div(a, b int) int {
return a / b
}执行结果:
panic: runtime error: integer divide by zero # 发生了一个panic(致命错误),会引发程序停止
goroutine 1 [running]: # 打印堆栈信息
main.div(...)
/Users/yangsx/Project/notes-golang/go语言圣经/练习答案/5. 函数/5.10 Recover捕获异常/练习 5.19/main.go:11
main.main()
/Users/yangsx/Project/notes-golang/go语言圣经/练习答案/5. 函数/5.10 Recover捕获异常/练习 5.19/main.go:6 +0x12为了程序正常运行,我们需要对错误进行处理。
defer、panic、recover
panic抛出错误recover在defer中捕获错误
defer + recover 在方法内抓取错误
panic抛出自定义错误
返回错误并交给调用方处理
代码预警,判断参数是否复合标准,否则创建一个自定error并返回
最后更新于
这有帮助吗?