Golang 自定义错误

全栈 shanhuhai 3874℃ 0评论

由于 golang 中接口的特殊性,所有实现了 Error() 方法的对象都可以,被赋值给 error 类型的变量,
所以实现起来就很简单,下面直接给出代码了, 这是我自己写的一个简单的demo

package main
import (
    "fmt"
    "strings"
)

type NameError struct {
    name string
}

func (e *NameError) Error() string {
    return e.name + " is  not valid"
}

func NameToUpper(name string) (string, error) {

    if name != "shanhuhai" {
        return  "", &NameError{name}
    }
    return strings.ToUpper(name), nil;
}

func main() {
    name := "shanhuhai"
    if upper , err := NameToUpper(name); err != nil {
        fmt.Println(err)
    } else {
        fmt.Println(name + "'s upper case is " + upper )
    }


    
}

转载请注明:大后端 » Golang 自定义错误

喜欢 (1)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址