运行下面的代码,会发现recover没有捕获到异常,原因是defer执行的函数在panic之后才被调用,也就是说defer根本就没有运行,因为myLog.Panic已经终止了函数调用
package main
import(
"fmt"
"bytes"
"log"
)
func main(){
var buff bytes.Buffer
// 自定义一个日志对象
// 默认的日志写入到buff中
myLog := log.
在 Golang 中,如果在函数中使用 panic 产生异常,recover 可能无法捕获到,因为 panic 会导致函数立即终止。确保 recover 在同一作用域内使用,或者在协程中正确处理异常。
运行下面的代码,会发现recover没有捕获到异常,原因是defer执行的函数在panic之后才被调用,也就是说defer根本就没有运行,因为myLog.Panic已经终止了函数调用
package main
import(
"fmt"
"bytes"
"log"
)
func main(){
var buff bytes.Buffer
// 自定义一个日志对象
// 默认的日志写入到buff中
myLog := log.
660

被折叠的 条评论
为什么被折叠?
