Compare commits

..

6 Commits

Author SHA1 Message Date
chai2010
1597ed7bcd
Merge pull request #119 from Asakijz/patch-7
Update ch5-10.md
2022-10-06 15:02:29 +08:00
chai2010
b4c6e3e234
Merge pull request #128 from Asakijz/patch-11
Update ch9-08.md
2022-10-06 15:01:42 +08:00
chai2010
eaef4fd12d
Merge pull request #130 from wingrez/patch-1
fix ch3.5.1 translation error
2022-10-06 15:01:08 +08:00
Wingrez
380ff85241
fix ch3.5.1 translate error 2022-10-06 11:59:29 +08:00
Asakijz
414ff02cea
Update ch9-08.md
加粗样式丢失
2022-09-22 15:13:15 +08:00
Asakijz
f6bb64ce09
Update ch5-10.md
原文为:deferred函数帮助Parse从panic中恢复。

应该是 recover函数吧
2022-09-05 16:47:45 +08:00
3 changed files with 5 additions and 5 deletions

View File

@ -71,7 +71,7 @@ s[0] = 'L' // compile error: cannot assign to s[0]
字符串值也可以用字符串面值方式编写,只要将一系列字节序列包含在双引号内即可: 字符串值也可以用字符串面值方式编写,只要将一系列字节序列包含在双引号内即可:
``` ```
"Hello, 世界" "Hello, world"
``` ```
![](../images/ch3-04.png) ![](../images/ch3-04.png)

View File

@ -17,7 +17,7 @@ func Parse(input string) (s *Syntax, err error) {
} }
``` ```
deferred函数帮助Parse从panic中恢复。在deferred函数内部panic value被附加到错误信息中并用err变量接收错误信息返回给调用者。我们也可以通过调用runtime.Stack往错误信息中添加完整的堆栈调用信息。 recover函数帮助Parse从panic中恢复。在deferred函数内部panic value被附加到错误信息中并用err变量接收错误信息返回给调用者。我们也可以通过调用runtime.Stack往错误信息中添加完整的堆栈调用信息。
不加区分的恢复所有的panic异常不是可取的做法因为在panic之后无法保证包级变量的状态仍然和我们预期一致。比如对数据结构的一次重要更新没有被完整完成、文件或者网络连接没有被关闭、获得的锁没有被释放。此外如果写日志时产生的panic被不加区分的恢复可能会导致漏洞被忽略。 不加区分的恢复所有的panic异常不是可取的做法因为在panic之后无法保证包级变量的状态仍然和我们预期一致。比如对数据结构的一次重要更新没有被完整完成、文件或者网络连接没有被关闭、获得的锁没有被释放。此外如果写日志时产生的panic被不加区分的恢复可能会导致漏洞被忽略。