跟着猫哥学Golang 14 - error
2016-02-11 15:36
459 查看
在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部。
error 类型实际上是抽象了 Error() 方法的 error 接口,Golang 使用该接口进行标准的错误处理。
1. 通常的用法:
error在函数返回值的一部分,一般是放在最后。用来判断结果,配合Println调试程序。比如下面的例子。
2. 也可以自定义一个错误,参考具体代码如下:
如果positiveNum函数的入口参数是个正数,结果显而易见。
在 Golang 中,错误处理机制一般是函数返回时使用的,是对外的接口,而异常处理机制 panic-recover 一般用在函数内部。
error 类型实际上是抽象了 Error() 方法的 error 接口,Golang 使用该接口进行标准的错误处理。
type error interface { Error() string }
1. 通常的用法:
error在函数返回值的一部分,一般是放在最后。用来判断结果,配合Println调试程序。比如下面的例子。
package main import "fmt" func FuncErr(val1 int, val2 string) (res string, err error) { // ... return "something..", err } func main() { if n, err := FuncErr(100, "Good"); err != nil { // 错误处理 fmt.Println(err) }else { fmt.Println(n) } }
2. 也可以自定义一个错误,参考具体代码如下:
package main import "fmt" type myError struct { val1 int err string } func (this myError) Error() string { return fmt.Sprintf("Number should bigger than 0\n") } func positiveNum (num int) (bool, error) { if (num > 0) { return true, nil } else { return false, myError{val1: num} } } func main() { if result, err := positiveNum(-1); err !=nil { fmt.Println("Error: ", err) }else{ fmt.Println("Number: ", result) } } # 输出: Error: Number should bigger than 0
如果positiveNum函数的入口参数是个正数,结果显而易见。
相关文章推荐
- 跟着猫哥学Golang 13 - 接口 interface
- POJ 1042 Gone Fishing (贪心)(刘汝佳黑书)
- POJ 2195 Going Home(费用流)
- 用Go开发WeChat接口的一个小坑
- django实现快速文件上传
- 蓝桥杯 算法训练 ALGO-3 K好数
- POJ 1042:Gone Fishing【贪心】
- django note
- 蓝桥杯 算法训练 ALGO-2 最大最小公倍数
- Django 笔记 模型数据的读取
- Django 笔记 模型数据的读取
- google推出的SwipeRefreshLayout下拉刷新用法
- hdu acm 1533 Going Home
- 104. Maximum Depth of Binary Tree LeetCode
- 蓝桥杯 算法训练 ALGO-1 区间k大数查询
- 什么是感知器学习算法(Perceptron Learning Algorithm/PLA)?
- mongoose 文档(五) Validation
- 为GoLang增加aes的ECB模式支持
- Django 笔记 manage.py sync 错误
- Django 笔记 manage.py sync 错误