From: Rob Pike
@@ -5069,10 +5072,13 @@ func recover() interface{}
When a function F calls panic, normal
execution of F stops immediately. Any functions whose
execution was deferred by the
-invocation of F are run in the usual way, and then
-F returns to its caller. To the caller, F
+invocation of F are immediately run in the usual way,
+but with the current values of any result parameters, and then
+F returns to its caller without executing the rest of
+the function. To the caller, F
then behaves like a call to panic, terminating its own
-execution and running deferred functions. This continues until all
+execution and running deferred functions in the same manner.
+This continues until all
functions in the goroutine have ceased execution, in reverse order.
At that point, the program is
terminated and the error condition is reported, including the value of