カスタマイズされたErrorを作ってみる

// MyError ...
type MyError struct {  
    Code    string
    Message string
}

func (e MyError) Error() string {  
    return fmt.Sprintf("MyError Code=%s : Message=%s", e.Code, e.Message)
}

// 使う側(なんかの処理)
if hasError == true {  
    return nil, &MyError{"E001", "お前が指定してるcodeは存在しない!"}
}

文字列だけのErrorだと以下のように書ける

errors.New("なんとなくエラーです")