golang panic的错误回收和简单的使用场景
golang panic的错误回收和简单的使用场景
- 代码示例
package mainimport("fmt"
)func main(){_,err:=deferPanic(8,0)if err!=nil{fmt.Println(err)}fmt.Println("这里还是会执行的")
}//panic 回收测试
func deferPanic(x,y int)(z int,err error){//使用defer回收接收panic值defer func(){if e:=recover();e!=nil{err = e.(error)fmt.Println("看来deferPanic出错了",err)}}()z = x/yreturn
}
- 注意:deferPanic返回值的设计。返回值里面有声明变量了,这就相当与deferPanic中的一个变量,并且deferPanic返回值为变量的值。
- 原因:减少在函数中定义变量的代码
- return、panic、defer的执行顺序
- panic先捕获错误信息
- 执行return
- defer回收错误信息
- 应用
- 用于无法预知的错误。例如:数组方面、map
转载于:https://www.cnblogs.com/MyUniverse/p/11526284.html
golang panic的错误回收和简单的使用场景相关推荐
- golang panic和recover 捕获异常
func panic(interface{})和func recover() interface{}是Golang中用于错误处理的两个函数. panic的作用就是抛出一条错误信息,从它的参数类型可以看 ...
- java golang gc_Golang GC 垃圾回收机制详解
摘要 在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应 ...
- golang利用反射写入excel的简单工具类
golang利用反射写入excel的简单工具类 工具类源码 使用方法 工具类源码 package excelimport ("errors""github.com/tea ...
- 如何在Golang中返回错误?
In Golang, we return errors explicitly using the return statement. This contrasts with the exception ...
- python里try和except用法_Python中的错误和异常处理简单操作示例【try-except用法】...
本文实例讲述了Python中的错误和异常处理操作.分享给大家供大家参考,具体如下: #coding=utf8 print ''''' 程序编译时会检测语法错误. 当检测到一个错误,解释器会引发一个异常 ...
- python打印报错信息_python打印当前文件错误行的简单示例
这篇文章主要为大家详细介绍了python打印当前文件错误行的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 在 ...
- 摄影平铺海报psd模板|简单搭建层次场景海报
大家肯定都看过那种 平铺的俯视图场景海报 用潮流颜色元素铺满海报 中间空位放上主题文字 看起来似乎很简单的样子 但为什么每次自己设计总觉得缺了点什么 平平无奇,没有什么层次感 事实上设计这种海报并不简 ...
- OpenGL学习——计算机图形学作业:简单的室内场景
这是我最开始的完全由自己写的一段代码,是自己想象的一个简单的室内场景,加入旋转和视点变换效果, 最后的结果显示,静态效果很好,不过动画效果产生重影: 但是这始终是我学习OpenGL后第一次完整的写出的 ...
- golang 定义一个空切片_Golang简单入门教程——函数进阶使用
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第八篇,我们来聊聊golang当中的函数. 我们在之前的时候已经介绍过了函数的基本用法,知道了怎么样设计或者是定义一 ...
最新文章
- 用php文件创建表,使用PHP创建单个文件上传表单的最佳方式是什么?
- LinKedHashMap和TreeMap介绍
- Spark详解(十四):Spark SQL的Join实现
- matplotlib新版本下的霍兰德人格分析雷达图
- 澳大利亚人一周发一次工资 经常月光不存钱
- Web中Servlet
- 表情包+外卖+壁纸小程序源码
- python中反射(__import__和getattr使用)
- paurse java_Java学习笔记一
- 长大了,烦恼就像是滔滔江水
- python 快速排名发包_2019年SEO快速排名发包技术及原理 - 立金哥
- 经天测绘测量工具包_公共土地测量系统
- PPT设计思维进阶:提升设计能力
- ehcache:Null key returned for cache operation问题解决方法
- vue2开发过程中el-select懒加载问题
- 【React】React介绍环境搭建
- python 获取列表中多个元素-切片操作
- 如何给apk文件签名(一)
- 进程4G虚拟内存空间的分配
- 电机与拖动 - 8 直流电机的电力拖动