From f6bb64ce09ab8b26335c065110290f880f4d6a77 Mon Sep 17 00:00:00 2001 From: Asakijz <47314025+Asakijz@users.noreply.github.com> Date: Mon, 5 Sep 2022 16:47:45 +0800 Subject: [PATCH] Update ch5-10.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原文为:deferred函数帮助Parse从panic中恢复。 应该是 recover函数吧 --- ch5/ch5-10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ch5/ch5-10.md b/ch5/ch5-10.md index 5cd254d..0564be6 100644 --- a/ch5/ch5-10.md +++ b/ch5/ch5-10.md @@ -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被不加区分的恢复,可能会导致漏洞被忽略。