Go编程中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时,程序会直接崩溃并终止执行。
相关文章