golang中的error接口传递自定义错误

golang中的error接口对于程序的简化和判断有比较好帮助,采用 func xxx( yyyy ) (zzzz, err error) 的方式利于错误传递,结合我们自定义的错误,可以达到灵活应用的效果。

[source lang="c"]
package main

import (
"fmt"
"encoding/json"
)

type MyError struct{
Code int
StrErr string
}

func (this *MyError) Error() string {
return this.StrErr
}

func MyFunc() (err error) {
err = &MyError{0, "success"}
return
}

func main(){
if err := MyFunc(); err != nil {
fmt.Println(err)
fmt.Printf("code %d, str %s\n",
err.(*MyError).Code,
err.(*MyError).StrErr)

data, _ := json.Marshal(err)
fmt.Println(string(data))
}
}

[/source]

发表评论

电子邮件地址不会被公开。 必填项已用*标注