Golang中异常处理:异常概念、panic函数、异常处理过程、recover错误拦截。
异常概念
func main(){
num := TestError(10,0)//除数为0明显错误,命令行报错
fmt.Println(num)
}
func TestError(num1 int,num2 int) int{
result := num1/numn2
return result
}
panic函数
panic函数:程序员自己不会调用该函数,但是如果程序员自己写的程序中出现了比较严重的异常,那么系统内部会调用该函数,终止整个程序的执行。
func main(){
Test()
}
func Test(){
fmt.Println("hhh")
panic("abc")//引发异常,从而强制终止整个程序的执行。
fmt.Println("hello")
}
异常处理过程
func main(){
num,err := TestError(10,0)//除数为0明显错误,命令行报错
if err!=nil{
fmt.Println(err)
}else{
fmt.Println(num)
}
fmt.Println(num)
}
func TestError(num1 int,num2 int) (result int,err error){//返回多个值
err = nil
if num2==0{
err = errors.New("除数不能为0")//描述错误信息
return
}
result = num1/numn2
return
}
recover错误拦截
注意:recover只有在defer调用的函数中有效
func main(){
Test(11)
}
func Test(n int){
defer TestRecover() //不会打印异常信息 拦截隐藏
var num[10] int
num[n] = 12 //下标越界
fmt.Println(num)
}
func TestRecover(){
fmt.Println(recover()) //使用fmt可以输出异常信息
}