Go编程中recover源码是什么

2023-04-06 04:25:00 recover 源码 编程

recover是一个内置的函数,用于恢复 panics 。

recover 仅在延迟函数中有效。如果当前函数并非延迟函数,或者当前上下文没有正在进行的panic,则调用 recover 会返回 nil 且没有其他任何效果。

在正常的执行过程中,调用 recover 会返回 nil 。

当一个函数 F 调用一个延迟函数 D 时,如果 D 中存在调用 recover ,那么在 D 返回前 F 中的所有延迟函数都会执行完毕。

如果在延迟函数中没有调用 recover ,当发生panic时,程序会直接崩溃并终止执行。

recover的返回值是panic传入的第一个参数,如果没有参数,则返回nil。

recover只有在延迟函数中有效,如果当前函数并非延迟函数,则调用recover会返回nil。

recover的作用是终止panic的执行过程,重新返回到panic发生之前的代码执行位置,继续向下执行。

如果不使用recover,当发生panic时,程序会直接崩溃并终止执行。

相关文章