在go里定义错误异常的方式有这么两种,但都需要你的返回值是error类型的。
func Control() error { //xxxx }
第一种方式是使用golang标准库包errors 来定义错误。使用方法很是简单,只需要 return errors.New(“string”) 。 这样就是一个最简单的错误返回。
第二种方式是借用struct结构体,创建一个struct的Error()方法,注意这个方法名是Error,不然会出现下面的Bug, 找不到Error方法。
./er.go:25: cannot use equalError lITeral (tyPE equalError) as type error in return argument: equalError does not implement error (missing Error method)
下面是一个比较完整的Error的使用方法。不仅有errors,还有struct Error()方式.
#http://xiaorui.cc package main import ( "errors" "fmt" ) type equalError struct { Num int } //方法名字是Error() func (e equalError) Error() string { return fmt.SPRintf("你现在是数字是 %d ,还是超了55", e.Num) } func Equal(n int) (int, error) { if n > 55 { return -1, errors.New("超过了55") //生成一个简单的 error 类型 } return n, nil } func DIYEqual(n int) (int, error) { if n > 55 { return -1, equalError{Num: n} // 会调用equalError的Error方法 } return n, nil } func main() { //使用errors.New生成error对象 if result, err := Equal(100); err != nil { fmt.Println("错误:", err) } else { fmt.Println("结果:", result) } //不适用erros,自定义错误方式. if result, err := DiyEqual(100); err != nil { fmt.Println("错误:", err) } else { fmt.Println("结果:", result) } }
脚本宝典总结
以上是脚本宝典为你收集整理的golang怎么自定义错误全部内容,希望文章能够帮你解决golang怎么自定义错误所遇到的问题。
如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。