error接口:源码

Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,该接口的定义如下:
type error interface {Error() string
}Go语言的标准库代码包errors为用户提供如下方法:
package errorstype errorString struct { text string
}func New(text string) error { return &errorString{text}
}func (e *errorString) Error() string { return e.text
}另一个可以生成error类型值的方法是调用fmt包中的Errorf函数:
package fmt
import "errors"func Errorf(format string, args ...interface{}) error {return errors.New(Sprintf(format, args...))
}

示例:

// code_027_error_panic_recover project main.go
package mainimport ("errors""fmt"
)//Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型,New, Error, Errorf方法
func Divide(a, b float64) (result float64, err error) {if b == 0 {result = 0.0err = errors.New("runtime error:divide by zezo")return}result = a / berr = nilreturn
}func main() {var err1 error = errors.New("a normal err1")fmt.Println(err1)var err2 error = fmt.Errorf("%s", "normal err2")fmt.Println(err2)r, err := Divide(10.0, 0)if err != nil {fmt.Println(err) //报错,错误处理} else {fmt.Println(r) //使用返回值}}

未完待续。。。

转载于:https://blog.51cto.com/13914991/2294035

Go语言的异常处理之errors,panic, recover相关推荐

  1. go panic recover 异常处理

    go panic recover 异常处理 参考文章: (1)go panic recover 异常处理 (2)https://www.cnblogs.com/zhishuai/p/8043064.h ...

  2. Go的异常处理 defer, panic, recover

    Go的异常处理 defer, panic, recover 参考文章: (1)Go的异常处理 defer, panic, recover (2)https://www.cnblogs.com/ghj1 ...

  3. go defer,panic,recover详解 go 的异常处理

    golang中defer,panic,recover是很常用的三个特性,三者一起使用可以充当其他语言中try-catch-的角色,而defer本身又像其他语言的析构函数 defer defer后边会接 ...

  4. go中宕机与恢复 panic/recover 介绍

    目录 一.panic 宕机 二.recover恢复 三.panic和recover的关系 Go 语言可以在程序中手动触发宕机,让程序崩溃,这样开发者可以及时地发现错误,同时减少可能的损失.Go 语言程 ...

  5. Go-defer,panic,recover

    defer 语法: defer function_name() 简单来讲,在defer所在函数执行完所有的代码之后,会自动执行defer的这个函数. 示例一(基本功能) package main im ...

  6. Go: panic / recover 简介与实践

    文章目录 简介 1.特性 2.panic触发流程 3.recover使用要点 4.使用场景 一.实践 1.跨线程失效 2.不起作用的recover 3.嵌套使用panic 4.注意事项 小结 简介 g ...

  7. go 异常捕获和处理(panic/recover)

    异常处理 Golang 没有结构化异常,使用 panic 抛出错误,recover 捕获错误. 异常的使用场景简单描述:Go中可以抛出一个panic的异常,然后在defer中通过recover捕获这个 ...

  8. go panic recover 思考

    panic 作为 Go 异常的一种,类比其它语言的 Exception. 常见的 panic 有数组下标越界,或者除数为0,这类 panic 可以通过 recover 进行捕获.但要特别注意,程序发生 ...

  9. C 语言编程 — 异常处理

    目录 文章目录 目录 前文列表 异常处理 perror() 和 strerror() 输出异常信息 程序退出状态 前文列表 <程序编译流程与 GCC 编译器> <C 语言编程 - 基 ...

最新文章

  1. (转)iPhone开发经典语录集锦
  2. 从自定义TagLayout看自定义布局的一般步骤[手动加精]
  3. 从成本角度看Java微服务
  4. bzoj2002Bounce 弹飞绵羊
  5. red hat linux 7.1 使用手册!,Red Hat Linux 7.1使用手册(中)
  6. “极品时刻表”被挂马 已有6万网民遭攻击
  7. 如何做好技术 Team Leader
  8. Android设计模式MVVM之DataBinding简单使用
  9. 0115互联网新闻 | 王欣发布“马桶MT”;字节跳动发布“多闪”;罗永浩新社交软件“聊天宝”已上架苹果App Store...
  10. Spring boot中使用Swagger2
  11. (6) Hibernate的集合映射
  12. error C2143: syntax error : missing ';' before '}'
  13. 1013. 数素数 (20)-PAT乙级真题
  14. 大数据分析面临哪些困境
  15. Rust图片类型识别
  16. 4K、高清、无水印视频素材库
  17. asr标注工具_BLASR:PacBio数据比对工具
  18. JAVA md5把我气到疯的代码,天哪,神呀,我的C# 啊。
  19. 软件工程作业-阅读与提问
  20. 华为网卡linux驱动安装,Linux Nvidia显卡驱动安装

热门文章

  1. [note] Homebrew的介绍、安装方法与常用命令整理
  2. [Java] 蓝桥杯ADV-185 算法提高 五次方数
  3. PAT 1090 危险品装箱(25 分)- 乙级
  4. 蓝桥杯 ALGO-141 算法训练 P1102
  5. 泛型与容器连载(一)泛型的基本概念和原理
  6. Delphi XE中String、ANSIString、TBytes之间的转换
  7. jvm crash分析工具
  8. Ubuntu on Windows,在Windows上的Ubuntu
  9. JZOJ.5274【NOIP2017模拟8.14】数组
  10. DispatcherServlet与初始化主线