看一段代码,引入错误处理

对上面代码的总结:

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

错误处理基本说明

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

使用 defer+recover 来处理错误


错误处理的好处

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

自定义错误

自定义错误的介绍

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

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

案例说明


golang错误处理机制(异常处理)相关推荐

  1. Golang 错误处理机制详解

    本文介绍Golang错误处理机制,包括不同类型错误处理.定义运行时错误等内容. golang错误处理机制 Go错误处理类似C语言,没有提供任何异常,以及类java语言使用的try/catch异常处理机 ...

  2. Golang错误处理机制

    基础 错误处理应该时工程的一部分,Golang中的error是一个interface类型,如下: type error interface {Error() string } 凡是实现Error()方 ...

  3. Golang错误和异常处理的正确姿势

    Golang错误和异常处理的正确姿势 错误和异常是两个不同的概念,非常容易混淆.很多程序员习惯将一切非正常情况都看做错误,而不区分错误和异常,即使程序中可能有异常抛出,也将异常及时捕获并转换成错误.从 ...

  4. 标准错误处理机制——error

    在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部. error 类型介绍 error 类型实际上是抽象了 Error ...

  5. DataWhale Golang(十、异常处理)

    DataWhale & Golang(十.异常处理) 学习大纲: 目录 DataWhale & Golang(十.异常处理) 学习大纲 10.异常处理 10.1 error 注意 10 ...

  6. SpringBoot之错误处理机制

    文章目录 1.SpringBoot默认的错误处理机制 2.错误处理原理 (1)DefaultErrorAttributes (2)BasicErrorController:处理默认的/error请求 ...

  7. .net错误处理机制

    .net错误处理机制 让我们想想,ASP.NET为我们提供了几种错误处理机制?如果同时使用他们是不是有一定的优先级?.NET提供了四种错误处理机制,它们有一定的优先级顺序:Page_Error事件&g ...

  8. springboot返回modelandview 找不到视图_SpringBoot错误处理机制及原理

    SpringBoot错误信息处理机制 ★ 在一个web项目中,总需要对一些错误进行界面或者json数据返回,已实现更好的用户体验,SpringBoot中提供了对于错误处理的自动配置 " Er ...

  9. ASP.NET的错误处理机制之一(概念)

    对Web应用程序来说,发生不可预知的错误和异常在所难免,我们必须为Web程序提供错误处理机制.当错误发生时,我们必须做好两件事情:一是将错误信息记录日志,发邮件通知网站维护人员,方便技术人员对错误进行 ...

最新文章

  1. node项目架构与优化
  2. 转:用java调用oracle存储过程总结(比较好理解)
  3. 无监督学习之聚类方法(K-Means、层次聚类)
  4. MongoDB模糊查询-查询某月的数据
  5. 微信开发经常会用到的一些方法
  6. 常用DOS下MSC指令
  7. java学习class5
  8. Atitit SpringCache缓存使用 艾提拉 attilax总结 1. Spring的抽象已经做得够好了,适合于大多数场景,非常复杂的就需要自己AOP实现了。 1 1.1. 设置配置文件支持
  9. C++中的namespace(using namespace)的理解
  10. Linux服务跟随启动,关于linux服务启动与自启动
  11. Regulator的使用
  12. 重庆大学明月科创班课程记录2.1大一下定量工程设计-定倾角船舶设计(Matlab)
  13. 魅族魅蓝真机调试不能识别设备
  14. 坚鹏:苏州银行《银行数字化运营之行动篇》课程培训圆满结束
  15. Java语言,什么是Java语言?Java的版本。
  16. solr(二)Using SolrJ
  17. 动易数据库conn.asp的问题
  18. 猿学~被误解的MVC和被神化的MVVM
  19. CNC操机的几个步骤
  20. cdn perl_菜鸟教程perl总结

热门文章

  1. 【深度学习】用 YOLO v5+DeepSORT,打造实时多目标跟踪模型
  2. 【算法知识】详解堆排序算法
  3. WE CAN:全球智能路由网络 | 体验共享技术专题
  4. 移动社交如何玩?网易云信携手崽崽和Uki打造更多新场景!
  5. 针对行业需求服务优质客户 ,网易云信助金融行业“网上冲浪”
  6. Storm入门(一)原理介绍
  7. 2019年3月20日 894. All Possible Full Binary Trees
  8. 阿里云对象存储OSS之通过URL形式进行图片处理
  9. 软件工程实践2017第一次作业-051502125
  10. react-native 环境配置遇到的问题