Fix 14.5, 14.6, 15.1 (#283)

* Update 07.3.md

* Update 07.3.md

* Update 07.6.md

* fix few problems

* Update 10.6 and 10.8

* Update 11.6 and 11.7

* fix some problems before Chap13

* add a dot

* Update 13.9

* little improve

* Thoughts about time.After

* Thoughts about time.After

* Fix 14.6,15.1
This commit is contained in:
王耀
2016-11-20 11:22:57 +08:00
committed by 无闻
parent 6d6c46c6c8
commit f2a3e873fe
6 changed files with 28 additions and 13 deletions

View File

@@ -21,7 +21,7 @@ func safelyDo(work *Work) {
上边的代码,如果 `do(work)` 发生 panic错误会被记录且协程会退出并释放而其他协程不受影响。
因为 `recover` 总是返回 `nil`,除非直接在 `defer` 修饰的函数中调用,`defer` 修饰的代码可以调用那些自身可以使用 `panic``recover` 避免失败的库例程(库函数)。举例,`safelyDo()``deffer` 修饰的函数可能在调用 `recover` 之前就调用了一个 `logging` 函数,`panicking` 状态不会影响 `logging` 代码的运行。因为加入了恢复模式,函数 `do`(以及它调用的任何东西)可以通过调用 `panic` 来摆脱不好的情况。但是恢复是在 `panicking` 的协程内部的:不能被另外一个协程恢复。
因为 `recover` 总是返回 `nil`,除非直接在 `defer` 修饰的函数中调用,`defer` 修饰的代码可以调用那些自身可以使用 `panic``recover` 避免失败的库例程(库函数)。举例,`safelyDo()``defer` 修饰的函数可能在调用 `recover` 之前就调用了一个 `logging` 函数,`panicking` 状态不会影响 `logging` 代码的运行。因为加入了恢复模式,函数 `do`(以及它调用的任何东西)可以通过调用 `panic` 来摆脱不好的情况。但是恢复是在 `panicking` 的协程内部的:不能被另外一个协程恢复。
## 链接