Overview
何度も忘れるので備忘録。
きっとまた忘れて似たようなエントリを書く気もする。
Sample
独自エラーを errors.Is
でハンドリングしたいときは以下のように Unwrap
を実装する。
type sampleError struct { err error msg string } func (e *sampleError) Error() string { return e.msg } func (e *sampleError) Unwrap() error { return e.err } func main() { var err error = &sampleError{ err: context.Canceled, msg: "context canceled", } if errors.Is(err, context.Canceled) { fmt.Println(err) return } fmt.Println(err.Error() + "-a") }