ブックマーク / qiita.com/sonatard (1)

  • xerrors - エラー設計の注意点 - Qiita

    トレースの情報を上位のレイヤーに渡すだけならパッケージで定義したエラーの型は公開しない トレースの情報だけをラップして渡していきたい場合には、Formatを実装していればパッケージ内で独自に定義したエラータイプは非公開にして問題ありません。非公開の場合は、Isでマッチなどはすることはありません。しかし Unwrap を実装しないと、より下位にラップされた公開されているエラーに到達できなくなってしまうので注意が必要です。 package pkg1 import ( "fmt" "golang.org/x/xerrors" ) // 非公開の型 type pkg1Error struct { msg string err error frame xerrors.Frame } func (e *pkg1Error) Error() string { return e.msg } // Unwr

    xerrors - エラー設計の注意点 - Qiita
    shnkkb
    shnkkb 2019/06/13
  • 1