DRYな備忘録

Don't Repeat Yourself.

Goのエラーハンドリングについてちょっとだけ思ったメモ

だめ1

if err := foo(); err != nil {
    return err
}
// どこがやねん、ってなる

だめ2

if err := foo(); err != nil {
    return fmt.Errorf("failed to do foo")
}
// なんでやねん、ってなる

すき

if err := foo(); err != nil {
    return fmt.Errorf("failed to do foo: %v", err)
}
// なにが、なんで失敗したかあとで知りやすい気がするよ

DRY