mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-12-01 02:28:56 +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)
|
![](../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被不加区分的恢复,可能会导致漏洞被忽略。
|
不加区分的恢复所有的panic异常,不是可取的做法;因为在panic之后,无法保证包级变量的状态仍然和我们预期一致。比如,对数据结构的一次重要更新没有被完整完成、文件或者网络连接没有被关闭、获得的锁没有被释放。此外,如果写日志时产生的panic被不加区分的恢复,可能会导致漏洞被忽略。
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user