Change-Id: Ide70476698d82a51881802dd6bf05dd7abcd60e8
GitHub-Last-Rev:
ddb251ded669d3dbbb96a05f4df7151c8d7c16d2
GitHub-Pull-Request: golang/go#57931
Reviewed-on: https://go-review.googlesource.com/c/go/+/462292
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
import (
"errors"
- "fmt"
"testing"
)
t.Errorf(`New("abc").Error() = %q, want %q`, err.Error(), "abc")
}
}
-
-func ExampleNew() {
- err := errors.New("emit macho dwarf: elf header corrupted")
- if err != nil {
- fmt.Print(err)
- }
- // Output: emit macho dwarf: elf header corrupted
-}
-
-// The fmt package's Errorf function lets us use the package's formatting
-// features to create descriptive error messages.
-func ExampleNew_errorf() {
- const name, id = "bimmler", 17
- err := fmt.Errorf("user %q (id %d) not found", name, id)
- if err != nil {
- fmt.Print(err)
- }
- // Output: user "bimmler" (id 17) not found
-}
-
-func ExampleJoin() {
- err1 := errors.New("err1")
- err2 := errors.New("err2")
- err := errors.Join(err1, err2)
- fmt.Println(err)
- if errors.Is(err, err1) {
- fmt.Println("err is err1")
- }
- if errors.Is(err, err2) {
- fmt.Println("err is err2")
- }
- // Output:
- // err1
- // err2
- // err is err1
- // err is err2
-}
package errors_test
import (
+ "errors"
"fmt"
+ "io/fs"
+ "os"
"time"
)
}
// Output: 1989-03-15 22:30:00 +0000 UTC: the file system has gone away
}
+
+func ExampleNew() {
+ err := errors.New("emit macho dwarf: elf header corrupted")
+ if err != nil {
+ fmt.Print(err)
+ }
+ // Output: emit macho dwarf: elf header corrupted
+}
+
+// The fmt package's Errorf function lets us use the package's formatting
+// features to create descriptive error messages.
+func ExampleNew_errorf() {
+ const name, id = "bimmler", 17
+ err := fmt.Errorf("user %q (id %d) not found", name, id)
+ if err != nil {
+ fmt.Print(err)
+ }
+ // Output: user "bimmler" (id 17) not found
+}
+
+func ExampleJoin() {
+ err1 := errors.New("err1")
+ err2 := errors.New("err2")
+ err := errors.Join(err1, err2)
+ fmt.Println(err)
+ if errors.Is(err, err1) {
+ fmt.Println("err is err1")
+ }
+ if errors.Is(err, err2) {
+ fmt.Println("err is err2")
+ }
+ // Output:
+ // err1
+ // err2
+ // err is err1
+ // err is err2
+}
+
+func ExampleIs() {
+ if _, err := os.Open("non-existing"); err != nil {
+ if errors.Is(err, fs.ErrNotExist) {
+ fmt.Println("file does not exist")
+ } else {
+ fmt.Println(err)
+ }
+ }
+
+ // Output:
+ // file does not exist
+}
+
+func ExampleAs() {
+ if _, err := os.Open("non-existing"); err != nil {
+ var pathError *fs.PathError
+ if errors.As(err, &pathError) {
+ fmt.Println("Failed at path:", pathError.Path)
+ } else {
+ fmt.Println(err)
+ }
+ }
+
+ // Output:
+ // Failed at path: non-existing
+}
+
+func ExampleUnwrap() {
+ err1 := errors.New("error1")
+ err2 := fmt.Errorf("error2: [%w]", err1)
+ fmt.Println(err2)
+ fmt.Println(errors.Unwrap(err2))
+ // Output
+ // error2: [error1]
+ // error1
+}
_, ok := target.(errorUncomparable)
return ok
}
-
-func ExampleIs() {
- if _, err := os.Open("non-existing"); err != nil {
- if errors.Is(err, fs.ErrNotExist) {
- fmt.Println("file does not exist")
- } else {
- fmt.Println(err)
- }
- }
-
- // Output:
- // file does not exist
-}
-
-func ExampleAs() {
- if _, err := os.Open("non-existing"); err != nil {
- var pathError *fs.PathError
- if errors.As(err, &pathError) {
- fmt.Println("Failed at path:", pathError.Path)
- } else {
- fmt.Println(err)
- }
- }
-
- // Output:
- // Failed at path: non-existing
-}
-
-func ExampleUnwrap() {
- err1 := errors.New("error1")
- err2 := fmt.Errorf("error2: [%w]", err1)
- fmt.Println(err2)
- fmt.Println(errors.Unwrap(err2))
- // Output
- // error2: [error1]
- // error1
-}