栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么`defer recovery()`不会引起恐慌?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么`defer recovery()`不会引起恐慌?

该处理恐慌部分提到,

两个内置函数

panic
recover
,可帮助报告和处理运行时紧急情况

recover
功能允许程序管理恐慌性goroutine的行为。

假设一个函数

G
推迟了
D
要调用 的函数
recover
并且
panic
在执行该函数的同一个goroutine上的函数中出现了a
G

当延迟函数的运行达到时

D
D
调用的返回值
recover
将是传递给紧急调用的值。
如果D正常返回而没有开始新的恐慌,则恐慌序列将停止。

这说明

recover
应该在延迟函数中调用,而不是直接调用。
出现紧急情况时,“递延函数”不能是内置函数
recover()
,而是在
defer语句中 指定的函数。

DeferStmt = "defer" expression .

表达式必须是函数或方法调用;不能用括号括起来。
内置函数的调用与 表达式语句
一样受到限制

除特定的内置函数外 ,函数和方法调用以及接收操作可以出现在语句上下文中。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484285.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号