Golang 从 panic 中恢复(Recover)
    		       		warning:
    		            这篇文章距离上次修改已过424天,其中的内容可能已经有所变动。
    		        
        		                
                
package main
 
import (
    "fmt"
    "time"
)
 
func riskyFunction() {
    // 假设这里是有风险的代码,可能会引起panic
    panic("出现了一个严重错误")
}
 
func recoverFromPanic() {
    // 使用defer和recover来从panic中恢复
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("恢复过程中:", r)
            // 在这里可以进行错误处理,如记录日志等
        }
    }()
 
    // 在这里调用可能会引起panic的函数
    riskyFunction()
}
 
func main() {
    // 每隔一秒尝试从panic中恢复
    for {
        recoverFromPanic()
        time.Sleep(1 * time.Second)
    }
}这段代码演示了如何使用defer和recover来从panic中恢复。recoverFromPanic函数中的defer语句确保了无论在riskyFunction函数中发生什么,程序都能够从panic中恢复。在main函数中,循环确保了这个恢复过程会持续进行。
评论已关闭