美文网首页
golang 错误处理

golang 错误处理

作者: 零一间 | 来源:发表于2019-07-09 17:54 被阅读0次

    Go 语言使用 error 类型来返回函数执行过程中遇到的错误,如果返回的 error 值为 nil,则表示没有错误,否则 error 会返回一个说明错误的字符串。

    其实 error 只是一个接口,定义如下:

    type error interface {
        Error() string
    }
    

    你可以用任何类型去实现它(只要实现 Error() 方法即可)。

    通过new 函数,生成简单的 error 对象

    package main
    
    import (
        "fmt"
        "iris/core/errors"
    )
    
    func run(code int) error {
        if code > 0 {
            return errors.New("这是一个错误")
        }
        return nil;
    }
    
    func main() {
    
        // 有错误
        err1 := run(601)
        fmt.Println(err1)
    
        // 无错误
        err2 := run(0)
        fmt.Println(err2)
    }
    
    

    通过实现Error()方法自定义错误

    
    package main
    
    import (
        "fmt"
        "time"
    )
    
    // 自定义错误
    type myError struct {
        err   string
        time  time.Time
        appName string
    }
    
    func (myError *myError) Error() string {
        return fmt.Sprintf("AppName:%s Error:%s RequestTime:%s", myError.appName, myError.err, myError.time)
    }
    
    func AppErr(err string, appName string) *myError {
        return &myError{
            err:   err,
            time:  time.Now(),
            appName: appName,
        }
    }
    
    func run(code int) error {
        if code > 0 {
            return AppErr("这是一个自定义错误","UCenter");
        }
        return nil;
    }
    
    func main() {
        // 有错误
        err1 := run(601)
        fmt.Println(err1)
    
        // 无错误
        err2 := run(0)
        fmt.Println(err2)
    }
    
    

    相关文章

      网友评论

          本文标题:golang 错误处理

          本文链接:https://www.haomeiwen.com/subject/oosfkctx.html