エラーの処理を共通化するための参考実装です。
このerrorsパッケージを自身アプリケーション以下にコピーしてください。
├── src
│ ├── api
│ ├── app
│ ├── domain
│ └── infra
└── errors ←
新しいエラーは define_xxx.go に定義してください
var エラー定義名 = newXXX(エラーコード, メッセージ)
var (
ErrInvalid = newBadRequest("invalid", "ユーザ側のエラーです")
ErrSystem = newInternalServerError("system", "サーバ側のエラーです")
)
if err := Update(); err != nil {
return errors.Wrap(err)
}
or (独自で定義したエラーを使う)
if err != nil {
return errors.UpdateUserData.Wrap(err, "UpdateUserData")
}
if device != `` {
return errors.New("unknown device")
}
or
if device != `` {
return errors.Errorf("AuthService device != ``")
}
or
if device != `` {
return errors.InvalidDevice.New("AuthService device != ``")
}