diff --git a/examples/defer/defer.go b/examples/defer/defer.go
index 06c827f..0941d10 100644
--- a/examples/defer/defer.go
+++ b/examples/defer/defer.go
@@ -40,5 +40,10 @@ func writeFile(f *os.File) {
func closeFile(f *os.File) {
fmt.Println("closing")
- f.Close()
+ err := f.Close()
+ // It is important to check for errors when closing a file, even in a deferred function.
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+ }
}
diff --git a/examples/defer/defer.hash b/examples/defer/defer.hash
index 2994617..5e437d4 100644
--- a/examples/defer/defer.hash
+++ b/examples/defer/defer.hash
@@ -1,2 +1,2 @@
-570699fc50a1d39e9d0ad6a4461aef3248b080e1
-xPbQ5SGkH2O
+4e2229c593e102d4efd101a7e9aa21f3345e90d1
+S2RuPTkABip
diff --git a/public/defer b/public/defer
index 43445ec..8f0b130 100644
--- a/public/defer
+++ b/public/defer
@@ -30,7 +30,7 @@ purposes of cleanup. defer
is often used where e.g.
package main
@@ -132,15 +132,31 @@ of the enclosing function (main
), after
It is important to check for errors when closing a file, even in a deferred function.
+ +func closeFile(f *os.File) {
+ fmt.Println("closing")
+ err := f.Close()
+
func closeFile(f *os.File) {
- fmt.Println("closing")
- f.Close()
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "error: %v\n", err)
+ os.Exit(1)
+ }
}