开发者社区> 问答> 正文

在 Golang 中,defer 和 recover 的使用有哪些注意事项?

在 Golang 中,defer 和 recover 的使用有哪些注意事项?

展开
收起
花开富贵111 2024-06-19 17:10:56 27 0
1 条回答
写回答
取消 提交回答
  • 在使用 defer 和 recover 时,需要注意以下几点:

    recover 只能在 defer 函数中调用,并且只有在 defer 函数被调用的 goroutine 中发生了 panic 时才会生效。
    在 defer 函数中调用 recover 会停止 panic 的传播,并返回 defer 函数中 recover 调用之后的代码执行。
    如果在一个函数中发生了 panic,但在该函数的任何 defer 函数中都没有调用 recover,那么该 panic 会继续向上传播,直到被调用栈中的某个 defer 函数捕获,或者导致整个程序崩溃。
    recover 的返回值是 panic 时传递的参数,如果没有传递参数,则 recover 返回 nil。

    2024-06-19 17:38:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里开发者手册-Golang专题 立即下载
Golang 微服务在腾讯游戏用户运营领域的探索及实践 立即下载
低代码开发师(初级)实战教程 立即下载