トレースの情報を上位のレイヤーに渡すだけならパッケージで定義したエラーの型は公開しない トレースの情報だけをラップして渡していきたい場合には、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