十五:GO语言的错误处理机制
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⼗五:GO语⾔的错误处理机制
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函数中的参数内容。