Go错误处理
来源:互联网 发布:沙巴克传奇有哪些端口 编辑:程序博客网 时间:2024/06/09 15:58
Go错误处理
Go语言通过内置的错误接口提供了非常简单的错误处理机制。
error类型是一个接口类型,以下是它的定义:
type error interface { Error() string}
我们可以在编码中通过error接口类型来生成错误信息。函数通常在最后的返回值中返回错误信息。使用errors.New可返回一个错误信息:
func Sqrt(f float64) (float64, error) { if f < 0 { return 0, errors.New("math: square root of negative number") } // 实现}
在调用Sqrt的时候传递一个负数, 然后就得到了non-nil的error对象,将此对象与nil比较,结果为true, 所以fmt.Println(fmt包在处理error时会调用Errorfang)package mainimport ( "fmt")// 定义一个 DivideError 结构type DivideError struct { dividee int divider int}// 实现 `error` 接口func (de *DivideError) Error() string { strFormat := ` Cannot proceed, the divider is zero. dividee: %d divider: 0` return fmt.Sprintf(strFormat, de.dividee)}// 定义 `int` 类型除法运算的函数func Divide(varDividee int, varDivider int) (result int, errorMsg string) { if varDivider == 0 { dData := DivideError{ dividee: varDividee, divider: varDivider, } errorMsg = dData.Error() return } else { return varDividee / varDivider, "" }}func main() { // 正常情况 if result, errorMsg := Divide(100, 10); errorMsg == "" { fmt.Println("100/10 = ", result) } // 当被除数为零的时候会返回错误信息 if _, errorMsg := Divide(100, 0); errorMsg != "" { fmt.Println("errorMsg is: ", errorMsg) }}
执行以上程序,输出结果为:
100/10 = 10errorMsg is: Cannot proceed, the divider is zero. dividee: 100 divider: 0
阅读全文
0 0
- Go语言错误处理
- GO 语言错误处理
- Go语言错误处理
- Go错误处理
- Go错误处理
- Error handling and Go go 优雅的错误处理
- Go起步:9、Go的错误处理--自定义异常
- Go 语言的错误处理机制
- Go语言错误处理小例子
- Go语言基础入门--函数,错误处理
- Go语言学习九:接口、错误处理
- Go语言中的错误处理系统
- Go语言错误与异常处理机制
- go web: 4 处理默认错误
- go语言学习笔记(10) 错误处理
- GO错误
- Go语言中使用panic和recover简化错误处理
- go基本语法学习笔记之错误处理
- mysql命令大全(速成版)
- DNX SDK版本 “dnx-clr-win-x86.1.0.0-beta5”无法安装
- 欢迎使用CSDN-markdown编辑器
- Android OpenGL教程-第六课【转】
- clearfix清除浮动的几种方法
- Go错误处理
- Java学习11:ArrayList常见题型
- 好久不用代码实现自定义UItableViewCell
- tst、cmp、bne、beq指令
- 1041. 考试座位号(15)——C语言
- Vue学习小结-1
- CentOS 6.X系统安装
- 微信H5同层播放器以及视频自动播放
- uva 1626