mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-28 09:09:07 +00:00
Compare commits
No commits in common. "1597ed7bcd228dd4c8bf769e72bd32eebb6d19ba" and "561b2d100aefbb1cc48613972a84f2399fb27caa" have entirely different histories.
1597ed7bcd
...
561b2d100a
@ -71,7 +71,7 @@ s[0] = 'L' // compile error: cannot assign to s[0]
|
||||
字符串值也可以用字符串面值方式编写,只要将一系列字节序列包含在双引号内即可:
|
||||
|
||||
```
|
||||
"Hello, world"
|
||||
"Hello, 世界"
|
||||
```
|
||||
|
||||
![](../images/ch3-04.png)
|
||||
|
@ -17,7 +17,7 @@ func Parse(input string) (s *Syntax, err error) {
|
||||
}
|
||||
```
|
||||
|
||||
recover函数帮助Parse从panic中恢复。在deferred函数内部,panic value被附加到错误信息中;并用err变量接收错误信息,返回给调用者。我们也可以通过调用runtime.Stack往错误信息中添加完整的堆栈调用信息。
|
||||
deferred函数帮助Parse从panic中恢复。在deferred函数内部,panic value被附加到错误信息中;并用err变量接收错误信息,返回给调用者。我们也可以通过调用runtime.Stack往错误信息中添加完整的堆栈调用信息。
|
||||
|
||||
不加区分的恢复所有的panic异常,不是可取的做法;因为在panic之后,无法保证包级变量的状态仍然和我们预期一致。比如,对数据结构的一次重要更新没有被完整完成、文件或者网络连接没有被关闭、获得的锁没有被释放。此外,如果写日志时产生的panic被不加区分的恢复,可能会导致漏洞被忽略。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user