Go语言中的错误处理
qingheluo2021-09-06清河洛293
Go语言中的错误Go语言通过内置的错误接口提供了非常简单的错误处理机制error类型是一个接口类型,它的定义:type error interface {
Error() string
}
一般情况下,我们使用函数在最后的返回值中返回错误信息使用errors.New(err_msg)函数可以返回一个错误信息func division (x , y int) (float64,error){
if y == 0 {
return 0,errors.New("错误,除数不能为0")
}
return float64(x/y),nil
}
Go...
Go语言中的错误
Go语言通过内置的错误接口提供了非常简单的错误处理机制
error类型是一个接口类型,它的定义:
type error interface { Error() string }
一般情况下,我们使用函数在最后的返回值中返回错误信息
使用errors.New(err_msg)函数可以返回一个错误信息
func division (x , y int) (float64,error){ if y == 0 { return 0,errors.New("错误,除数不能为0") } return float64(x/y),nil }
Go语言中的panic
panic相当于其他语言中的异常,当程序遇到panic时会触发程序宕机退出
抛出panic
使用内置函数panic(err_msg)来抛出panic
func main() { if a == 0 { panic("变量a的值为零") } fmt.Println("该语句不会执行") }
捕获panic
使用内置函数recover()来捕获panic
recover必须在defer函数中才能生效,其他作用域下它是不工作的
var arr [5] int func set_val(index int){ defer func(){ if err := recoover(); err !=nil { fmt.Println(err) } }() arr[index] = 10 } func main(){ set_val(8) //设置arr[8]的值,由于arr只有5个元素,会数组越界,触发panic fmt.Println("该语句仍然会执行") }