mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
all: add Unwrap and Is methods to various error types
Add Unwrap methods to types which wrap an underlying error:
"encodinc/csv".ParseError
"encoding/json".MarshalerError
"net/http".transportReadFromServerError
"net".OpError
"net".DNSConfigError
"net/url".Error
"os/exec".Error
"signal/internal/pty".PtyError
"text/template".ExecError
Add os.ErrTemporary. A case could be made for putting this error
value in package net, since no exported error types in package os
include a Temporary method. However, syscall errors returned from
the os package do include this method.
Add Is methods to error types with a Timeout or Temporary method,
making errors.Is(err, os.Err{Timeout,Temporary}) equivalent to
testing the corresponding method:
"context".DeadlineExceeded
"internal/poll".TimeoutError
"net".adrinfoErrno
"net".OpError
"net".DNSError
"net/http".httpError
"net/http".tlsHandshakeTimeoutError
"net/pipe".timeoutError
"net/url".Error
Updates #30322
Updates #29934
Change-Id: I409fb20c072ea39116ebfb8c7534d493483870dc
Reviewed-on: https://go-review.googlesource.com/c/go/+/170037
Run-TryBot: Damien Neil <dneil@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
This commit is contained in:
parent
59ea685ce9
commit
170b8b4b12
18 changed files with 208 additions and 24 deletions
|
|
@ -23,6 +23,7 @@ var (
|
|||
ErrNotExist = errNotExist() // "file does not exist"
|
||||
ErrClosed = errClosed() // "file already closed"
|
||||
ErrTimeout = errTimeout() // "deadline exceeded"
|
||||
ErrTemporary = errTemporary() // "temporary error"
|
||||
ErrNoDeadline = errNoDeadline() // "file type does not support deadline"
|
||||
)
|
||||
|
||||
|
|
@ -32,6 +33,7 @@ func errExist() error { return oserror.ErrExist }
|
|||
func errNotExist() error { return oserror.ErrNotExist }
|
||||
func errClosed() error { return oserror.ErrClosed }
|
||||
func errTimeout() error { return oserror.ErrTimeout }
|
||||
func errTemporary() error { return oserror.ErrTemporary }
|
||||
func errNoDeadline() error { return poll.ErrNoDeadline }
|
||||
|
||||
type timeout interface {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue