错误处理

看一段代码,因此错误处理

  1. 在默认情况下,当发生错误后(panic) ,程序就会退出(崩溃.)
  2. 如果我们希望:当发生错误后,可以捕获到错误,并进行处理,保证程序可以继续执行。还可 以在捕获到错误后,给管理员一个提示(邮件,短信。。。)
  3. 这里引出我们要将的错误处理机制

基本说明

  1. Go 语言追求简洁优雅,所以,Go 语言不支持传统的 try…catch…finally 这种处理。
  2. Go 中引入的处理方式为:defer, panic, recover
  3. 这几个异常的使用场景可以这么简单描述:Go 中可以抛出一个 panic 的异常,然后在 defer 中 通过 recover 捕获这个异常,然后正常处理

使用 defer+recover 来处理错误

错误处理的好处

进行错误处理后,程序不会轻易挂掉,如果加入预警代码,就可以让程序更加的健壮。看一个 案例演示:

自定义错误

自定义错误的介绍

Go 程序中,也支持自定义错误, 使用 errors.New 和 panic 内置函数。

  1. errors.New(“错误说明”) , 会返回一个 error 类型的值,表示一个错误
  2. panic 内置函数 ,接收一个 interface{}类型的值(也就是任何值了)作为参数。可以接收 error 类 型的变量,输出错误信息,并退出程序.

案例说明

Golang的错误处理笔记相关推荐

  1. Golang底层原理学习笔记(一)

    LCY~~Golang底层原理学习笔记 1 源码调试 go源代码地址:GitHub - golang/go: The Go programming language 1.1 源码编译 现在的go语言大 ...

  2. golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)

    此文写在golang游戏开发学习笔记-创建一个能自由探索的3D世界之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里我们要创建一个简单的2D游戏场景以及配套的人物,并实现人物运动和碰撞检测功能 ...

  3. golang游戏开发学习笔记-创建一个能自由探索的3D世界

    此文写在golang游戏开发学习笔记-用golang画一个随时间变化颜色的正方形之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里,我们将创建一个非常简单(只有三个方块)但能自由探索的的3D世 ...

  4. python利用STMP发送gmail、QQ邮件错误及笔记总结

    引言 本篇博文是一个我之前没有想要去关注,但就是这样看似轻松的事情,却出现了很多的bug,我尝试用了163,.QQ以及谷歌邮箱去发送邮件,中间遇到了很多波折,其中一根谷歌的小号邮箱也被封了,所以想在这 ...

  5. 同济高等数学第一章之经典错误知识点笔记

    第一章经典错误及笔记 1.函数 1.复合函数 2.反函数 3.初等函数 2.极限 1.数列的极限 1.定义 2.数列的有界性: 3.数列的保号性: 2.函数的极限 1.定义 2.函数的有界性: 3.函 ...

  6. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  7. python运维开发招聘_GitHub - PlutoaCharon/LiunxNotes: 校招-运维开发(Liunx,Python,Golang)面试学习笔记...

    校招-运维开发(Liunx,Python,Golang)面试学习笔记 1. 网络基础类 2. Linux系统管理类 3. Linux服务管理类 4. 数据库管理 ​ 索引(包括分类及优化方式,失效条件 ...

  8. php框架全局自定义错误,[TP笔记]ThinkPHP自定义错误页面、成功页面及异常页面

    看了前面分享的一篇<什么是真正的程序员?>,觉得自己离这个目标还差的很远,所以要抓紧朝着这个方向前进.作为一名PHP小码农,掌握一种框架是必须的.所以今天开始我们就从国产PHP框架 Thi ...

  9. golang编译错误 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 解决方法

    问题: linux虚拟机 golang编译 报错 copying /tmp/go-build069786374/b001/exe/a.out: No such file or directory 原因 ...

最新文章

  1. Agile DSL Development in Ruby 笔记
  2. 后APP时代的破局之路 :阿里技术“三大容器五大方案”亮相,百川开放全面升级...
  3. Cmake:linux中cmake添加动态库
  4. Kali安装magescan评估工具
  5. Delphi IDE扩展工具,在IDE中增加Google翻译器
  6. php7对象转换成数组,php 如何把对象转换成数组对象
  7. python逻辑回归代码_Logistic 逻辑回归及 python 实现
  8. lstrip和rstrip_Python装饰字符串– rstrip(),lstrip(),strip()
  9. 第四次课后作业及Sring类型的应用
  10. nodejs写的HTTP静态文件的引擎(轻量级)
  11. OpenCV相机帧率低以及花屏问题
  12. Python多环境扩展管理-Virtualenv
  13. 用友U815.0UFO报表知识点分享
  14. linux+时间戳+ns,时间戳转换工具
  15. 编程题:首尾相连的字符串
  16. shopex PHP Notice,shopex官网用PHP为SHOPEX增加日志功能代码
  17. epub编辑器apk_使用您喜欢HTML编辑器编辑ePub电子书
  18. index.php被修改,WordPress博客程序index.php 主页文件频繁被修改解决记录(已解决) - 勤勤学长...
  19. ZY Player 2.3.5 中文版 (全网视频播放器)
  20. 学习笔记(01):【孙伟老师UID课堂】设计师也能会的-WEB前端入门基础HTML+CSS视频教程-09综合表单标签讲解-1...

热门文章

  1. vlan 间路由+单臂路由(实验思路讲解+配置)
  2. Promise.all 处理error
  3. 证明task线程是来源于线程池的,线程重用
  4. 一个列表包揽所有你需要的Windows应用
  5. falcon框架_如何使用Falcon构建RESTful API
  6. 雨滴桌面时间插件_电脑桌面美化,我只服这10个骚操作!
  7. Maven系列(一):maven基础入门
  8. 数据洞察 | Python解读地摊——你想好摆摊去卖什么了吗?
  9. Python编程 | 新手必会的 9 个 Python 技巧
  10. Python 全国考级二级