Hacker News new | ask | show | jobs
by arccy 381 days ago
in standard go you'd have errors implement:

    func (myError) Is(err error) bool
and it can match different sentinel errors. Or you can make your own wrapper to have the error chain match.
1 comments

In standard go you would not implement Is but would use the errors.Is call. How would this work if it is a sentinel error as you would use with errors.Is??
https://pkg.go.dev/errors#Is

> An error is considered to match a target if it is equal to that target or if it implements a method Is(error) bool such that Is(target) returns true.

by default errors.Is matches the exact error variable, but you can use it to match other errors as well.

I stand corrected. Still you cannot implement an Is on a sentinel error and is only applicable to concrete error types. And if I'm using concrete types I'm going to us errors.As