package main import ( "fmt" )
##通过struct来构建自定义异常,只要实现 Error方法就实现了系统error接口, type Err struct { line string code string err string } func (e *Err)Error() string { return fmt.Sprintf("error line %s error %s error code %s",e.line,e.err,e.code) } func New(L,C,E string) *Err { return &Err{ code: C,err: E,line: L, } }
调用
package main import "fmt" func main() { fmt.Println("test") err := TestErr() if err !=nil{ fmt.Println(err) self,_ :=err.(*Err) fmt.Println(self.err) fmt.Println(self.line) fmt.Println(self.code) } } func TestErr() error { s := New("100","test","404") return s }