Skip to content

Commit 2846eda

Browse files
authored
Merge pull request #380 from amirhasanpour/amirhasanpour-error-handling
Update 2.6-error-handling.md
2 parents 4786213 + 904911b commit 2846eda

File tree

1 file changed

+24
-10
lines changed

1 file changed

+24
-10
lines changed

content/chapter 2/2.6-error-handling.md

Lines changed: 24 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@ func main() {
134134
if err != nil {
135135
if err, ok := err.(*inputError); ok {
136136
fmt.Println(err)
137+
fmt.Printf("Message: %s\n", err.Error())
137138
fmt.Printf("Missing Field is %s\n", err.getMissingField())
138139
}
139140
}
@@ -252,21 +253,34 @@ func Unwrap(err error) error
252253
منظورمان از unwrap کردن این است که، اگر خطایی را {{< tooltip text="هم پوشانی" note="wrap" >}} کرده باشیم با استفاده unwrap می‌توانیم آن خطا را ببینیم.
253254

254255
{{< play >}}
256+
package main
257+
255258
import (
256-
"errors"
257-
"fmt"
259+
"errors"
260+
"fmt"
258261
)
259-
type errorOne struct{}
262+
263+
type errorOne struct {
264+
cause error
265+
}
266+
260267
func (e errorOne) Error() string {
261-
return "Error One happened"
268+
return "Error One happened"
262269
}
270+
271+
func (e errorOne) Unwrap() error {
272+
return e.cause
273+
}
274+
263275
func main() {
264-
e1 := errorOne{}
265-
e2 := fmt.Errorf("E2: %w", e1)
266-
e3 := fmt.Errorf("E3: %w", e2)
267-
fmt.Println(errors.Unwrap(e3))
268-
fmt.Println(errors.Unwrap(e2))
269-
fmt.Println(errors.Unwrap(e1))
276+
root := errors.New("root cause")
277+
e1 := errorOne{cause: root}
278+
e2 := fmt.Errorf("E2: %w", e1)
279+
e3 := fmt.Errorf("E3: %w", e2)
280+
281+
fmt.Println(errors.Unwrap(e3)) // e2
282+
fmt.Println(errors.Unwrap(e2)) // e1
283+
fmt.Println(errors.Unwrap(e1)) // root
270284
}
271285
{{< /play >}}
272286

0 commit comments

Comments
 (0)