Go案例说明defer panic recover
defer推迟 recover恢复 panic恐慌
通过一个案例解释:发送邮件的 发送不成功要修改数据表的邮件发送状态值
发送邮件的内部sendEmail出现错误 要去修改数据表的状态值了
发送邮件的内部sendEmail错误进行panic报警
defer最后执行 执行defer里面的函数
使用recover进行捕获了错误 然后修改发送邮件状态值为不成功 程序结束执行
这就是panic defer recover进行配合完成try catch throw的功能
defer一定放在有内部函数的前面
package mainimport "fmt"func sendEmail() {// 相当于php的throw 发送邮件有错误进行报警panicpanic(" error ")
}func main() {// 相等于trydefer func() {// 相等于catch recover进行捕获错误if r := recover(); r != nil {fmt.Printf("执行修改数据表状态值的动作 END")}}()sendEmail()}
Go案例说明defer panic recover相关推荐
- Go的异常处理 defer, panic, recover
Go的异常处理 defer, panic, recover 参考文章: (1)Go的异常处理 defer, panic, recover (2)https://www.cnblogs.com/ghj1 ...
- go defer,panic,recover详解 go 的异常处理
golang中defer,panic,recover是很常用的三个特性,三者一起使用可以充当其他语言中try-catch-的角色,而defer本身又像其他语言的析构函数 defer defer后边会接 ...
- golang panic recover return defer的逻辑顺序问题
package mainimport "fmt"//验证golang return defer recover 之间的顺序关系func main() {defer func() { ...
- Go: panic / recover 简介与实践
文章目录 简介 1.特性 2.panic触发流程 3.recover使用要点 4.使用场景 一.实践 1.跨线程失效 2.不起作用的recover 3.嵌套使用panic 4.注意事项 小结 简介 g ...
- go 异常捕获和处理(panic/recover)
异常处理 Golang 没有结构化异常,使用 panic 抛出错误,recover 捕获错误. 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个 ...
- go中宕机与恢复 panic/recover 介绍
目录 一.panic 宕机 二.recover恢复 三.panic和recover的关系 Go 语言可以在程序中手动触发宕机,让程序崩溃,这样开发者可以及时地发现错误,同时减少可能的损失.Go 语言程 ...
- go panic recover 思考
panic 作为 Go 异常的一种,类比其它语言的 Exception. 常见的 panic 有数组下标越界,或者除数为0,这类 panic 可以通过 recover 进行捕获.但要特别注意,程序发生 ...
- Go-defer,panic,recover
defer 语法: defer function_name() 简单来讲,在defer所在函数执行完所有的代码之后,会自动执行defer的这个函数. 示例一(基本功能) package main im ...
- go panic recover 异常处理
go panic recover 异常处理 参考文章: (1)go panic recover 异常处理 (2)https://www.cnblogs.com/zhishuai/p/8043064.h ...
最新文章
- Lnmp安装与配置笔记
- 美多商城之商品(商品搜索)
- 34.angularJS的{{}}和ng-bind
- faster rcnn论文_faster-rcnn论文思路及代码编译
- CSV文件读取和处理
- android: 播放音频
- access labsql 出错_一段由ACCESS转为SQL SERVER后出现的CINT错误
- linux模块加载和模块卸载时出现的问题
- python实践项目(一)
- Android 字母导航条实现
- python基础之模块初识
- Android API介绍
- Unix Windows
- python入门神器下载_Python编程神器 v3.7.2 最新免费版
- python中pop类型_Python基础之基本数据类型
- 张宇:概率论与数理统计公式总结
- 系统软件的成本构成与测算方式
- 大数据对生活有什么影响
- Matlab 中min(),min(min()),max(),max(max())的介绍和分析
- MybatisPlus极速入门教程
热门文章
- PowerDesigner中设置数据库类型,设置default value,Comment,自增属性,以及数据库设计中的需要考虑的示项,带有小数点的数据显示
- 远程拷贝、查看端口、vim常见快捷键、查找替换命令、grep命令、查看存储空间的命令、chkconfig命令、系统自动启动级别、主机名配置、IP地址配置、域名映射、防火墙设置
- c语言中字符串操作的工具类
- Linux crontab的使用方式,sh脚本的编写,sh脚本自动启动tomcat服务器,sh监控系统运行情况
- Mule ESB 学习笔记(11)Web Service Proxy(这里是一个可以正常运行的例子)
- Hive多字符列分割
- 钰群USB3.0音视频信号采集
- C++for循环中i++与++i的区别
- Internet Explorer 9.0 正式版试用一点小总结
- 更新整理本人全部博文中提供的代码与工具(Java,2014.09)