Go 创建自定义错误类型
示例
在Go中,任何可以将自身描述为字符串的值均表示错误。任何实现内置error接口的类型都是错误。
//错误界面由单个表示
//Error()方法,返回错误的字符串表示形式
type error interface {
Error() string
}下面的示例演示如何使用字符串复合文字来定义新的错误类型。
//将AuthorizationError定义为复合文字
type AuthorizationError string
//实现错误界面
//在这种情况下,我只返回基础字符串
func (e AuthorizationError) Error() string {
return string(e)
}我现在可以将自定义错误类型用作错误:
package main
import (
"fmt"
)
//将AuthorizationError定义为复合文字
type AuthorizationError string
//实现错误界面
//在这种情况下,我只返回基础字符串
func (e AuthorizationError) Error() string {
return string(e)
}
func main() {
fmt.Println(DoSomething(1)) //成功!返回nil
fmt.Println(DoSomething(2)) //返回错误信息
}
func DoSomething(someID int) error {
if someID != 1 {
return AuthorizationError("不允许采取行动!")
}
//在这里做点什么
//如果执行成功,则返回nil错误
return nil
}