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的错误回收和简单的使用场景相关推荐

  1. golang panic和recover 捕获异常

    func panic(interface{})和func recover() interface{}是Golang中用于错误处理的两个函数. panic的作用就是抛出一条错误信息,从它的参数类型可以看 ...

  2. java golang gc_Golang GC 垃圾回收机制详解

    摘要 在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应 ...

  3. golang利用反射写入excel的简单工具类

    golang利用反射写入excel的简单工具类 工具类源码 使用方法 工具类源码 package excelimport ("errors""github.com/tea ...

  4. 如何在Golang中返回错误?

    In Golang, we return errors explicitly using the return statement. This contrasts with the exception ...

  5. python里try和except用法_Python中的错误和异常处理简单操作示例【try-except用法】...

    本文实例讲述了Python中的错误和异常处理操作.分享给大家供大家参考,具体如下: #coding=utf8 print ''''' 程序编译时会检测语法错误. 当检测到一个错误,解释器会引发一个异常 ...

  6. python打印报错信息_python打印当前文件错误行的简单示例

    这篇文章主要为大家详细介绍了python打印当前文件错误行的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 在 ...

  7. 摄影平铺海报psd模板|简单搭建层次场景海报

    大家肯定都看过那种 平铺的俯视图场景海报 用潮流颜色元素铺满海报 中间空位放上主题文字 看起来似乎很简单的样子 但为什么每次自己设计总觉得缺了点什么 平平无奇,没有什么层次感 事实上设计这种海报并不简 ...

  8. OpenGL学习——计算机图形学作业:简单的室内场景

    这是我最开始的完全由自己写的一段代码,是自己想象的一个简单的室内场景,加入旋转和视点变换效果, 最后的结果显示,静态效果很好,不过动画效果产生重影: 但是这始终是我学习OpenGL后第一次完整的写出的 ...

  9. golang 定义一个空切片_Golang简单入门教程——函数进阶使用

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是golang专题的第八篇,我们来聊聊golang当中的函数. 我们在之前的时候已经介绍过了函数的基本用法,知道了怎么样设计或者是定义一 ...

最新文章

  1. 用php文件创建表,使用PHP创建单个文件上传表单的最佳方式是什么?
  2. LinKedHashMap和TreeMap介绍
  3. Spark详解(十四):Spark SQL的Join实现
  4. matplotlib新版本下的霍兰德人格分析雷达图
  5. 澳大利亚人一周发一次工资 经常月光不存钱
  6. Web中Servlet
  7. 表情包+外卖+壁纸小程序源码
  8. python中反射(__import__和getattr使用)
  9. paurse java_Java学习笔记一
  10. 长大了,烦恼就像是滔滔江水
  11. python 快速排名发包_2019年SEO快速排名发包技术及原理 - 立金哥
  12. 经天测绘测量工具包_公共土地测量系统
  13. PPT设计思维进阶:提升设计能力
  14. ehcache:Null key returned for cache operation问题解决方法
  15. vue2开发过程中el-select懒加载问题
  16. 【React】React介绍环境搭建
  17. python 获取列表中多个元素-切片操作
  18. 如何给apk文件签名(一)
  19. 进程4G虚拟内存空间的分配
  20. 电机与拖动 - 8 直流电机的电力拖动

热门文章

  1. CIA公布了收集和存储美国公民信息的新规则
  2. NIST发布企业移动应用安全建议参考指南
  3. 【网络编程】用Socket实现聊天小程序
  4. 一文贯通python文件读取 1
  5. ASPNETPager常用属性
  6. 文件特殊权限及facl
  7. WinAPI: Ellipse - 绘制椭圆
  8. RHEL4-SFTP配置
  9. 5_jfoenix_运行jfoenix官方演示,切换片段,部署
  10. 把hive数据导出至mysql