GO语言在默认情况下,当发生错误后(panic),程序就会退出(崩溃)
如果希望在发生错误后,可以捕获到错误,并进行处理,保证程序可以继续执行,则需要使用GO语言的错误处理机制
GO语言中的错误处理方式为:defer,panic,recover
这三者的关系为,在程序出现错误的时候可以抛出一个panic的一场,然后在defer中通过recover来捕获这个异常,之后再进行相应处理,比如写错误日志或者给管理员发送一封错误邮件
代码示例
该函数在运行到17行的时候会报错,因为num2为0,无法进行运算,所以会报错
输出结果
这里可以看到,在main中调用该函数后,捕获异常并且正常输出,
然后接着运行main函数中后面的代码
自定义错误
介绍:
GO程序中,也支持自定义错误,使用errors.New和panic内置函数
1.errors.New("错误说明"),会返回一个error类型的值,表示一个错误
2.panic内置函数,接受一个interface{}类型的值(在GO语言中interface{}可以是任何值)作为参数,可以接受error类型的变量,输出错误信息,并退出程序
输出结果
在程序中使用panic时,程序会被终止,并且输出传入panic函数中的参数内容