mirror of
https://github.com/golang/go
synced 2024-11-11 20:50:23 -07:00
os: clarify that IsExist and friends do not use errors.Is
Fixes #41122 Change-Id: Ie5cb0b19ac461d321520b1ebfc493a0ca22232a7 Reviewed-on: https://go-review.googlesource.com/c/go/+/268897 Trust: Ian Lance Taylor <iant@golang.org> Reviewed-by: Rob Pike <r@golang.org> Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
This commit is contained in:
parent
26a860706a
commit
b641f0dcf4
@ -76,6 +76,9 @@ func NewSyscallError(syscall string, err error) error {
|
|||||||
// IsExist returns a boolean indicating whether the error is known to report
|
// IsExist returns a boolean indicating whether the error is known to report
|
||||||
// that a file or directory already exists. It is satisfied by ErrExist as
|
// that a file or directory already exists. It is satisfied by ErrExist as
|
||||||
// well as some syscall errors.
|
// well as some syscall errors.
|
||||||
|
//
|
||||||
|
// This function predates errors.Is. It only supports errors returned by
|
||||||
|
// the os package. New code should use errors.Is(err, os.ErrExist).
|
||||||
func IsExist(err error) bool {
|
func IsExist(err error) bool {
|
||||||
return underlyingErrorIs(err, ErrExist)
|
return underlyingErrorIs(err, ErrExist)
|
||||||
}
|
}
|
||||||
@ -83,6 +86,9 @@ func IsExist(err error) bool {
|
|||||||
// IsNotExist returns a boolean indicating whether the error is known to
|
// IsNotExist returns a boolean indicating whether the error is known to
|
||||||
// report that a file or directory does not exist. It is satisfied by
|
// report that a file or directory does not exist. It is satisfied by
|
||||||
// ErrNotExist as well as some syscall errors.
|
// ErrNotExist as well as some syscall errors.
|
||||||
|
//
|
||||||
|
// This function predates errors.Is. It only supports errors returned by
|
||||||
|
// the os package. New code should use errors.Is(err, os.ErrNotExist).
|
||||||
func IsNotExist(err error) bool {
|
func IsNotExist(err error) bool {
|
||||||
return underlyingErrorIs(err, ErrNotExist)
|
return underlyingErrorIs(err, ErrNotExist)
|
||||||
}
|
}
|
||||||
@ -90,12 +96,21 @@ func IsNotExist(err error) bool {
|
|||||||
// IsPermission returns a boolean indicating whether the error is known to
|
// IsPermission returns a boolean indicating whether the error is known to
|
||||||
// report that permission is denied. It is satisfied by ErrPermission as well
|
// report that permission is denied. It is satisfied by ErrPermission as well
|
||||||
// as some syscall errors.
|
// as some syscall errors.
|
||||||
|
//
|
||||||
|
// This function predates errors.Is. It only supports errors returned by
|
||||||
|
// the os package. New code should use errors.Is(err, os.ErrPermission).
|
||||||
func IsPermission(err error) bool {
|
func IsPermission(err error) bool {
|
||||||
return underlyingErrorIs(err, ErrPermission)
|
return underlyingErrorIs(err, ErrPermission)
|
||||||
}
|
}
|
||||||
|
|
||||||
// IsTimeout returns a boolean indicating whether the error is known
|
// IsTimeout returns a boolean indicating whether the error is known
|
||||||
// to report that a timeout occurred.
|
// to report that a timeout occurred.
|
||||||
|
//
|
||||||
|
// This function predates errors.Is, and the notion of whether an
|
||||||
|
// error indicates a timeout can be ambiguous. For example, the Unix
|
||||||
|
// error EWOULDBLOCK sometimes indicates a timeout and sometimes does not.
|
||||||
|
// New code should use errors.Is with a value appropriate to the call
|
||||||
|
// returning the error, such as os.ErrDeadlineExceeded.
|
||||||
func IsTimeout(err error) bool {
|
func IsTimeout(err error) bool {
|
||||||
terr, ok := underlyingError(err).(timeout)
|
terr, ok := underlyingError(err).(timeout)
|
||||||
return ok && terr.Timeout()
|
return ok && terr.Timeout()
|
||||||
|
Loading…
Reference in New Issue
Block a user