golang 全局异常处理判断异常类型
在Go中,可以使用defer和recover函数来实现全局异常处理。defer用于延迟执行一个函数,而recover用于捕获异常。
以下是一个简单的例子,展示了如何使用defer和recover来捕获异常并进行处理:
func main() {
defer func() {
if r := recover(); r != nil {
switch r.(type) {
case string:
fmt.Println("String Error:", r)
case error:
fmt.Println("Error:", r)
default:
fmt.Println("Unknown error:", r)
}
}
}()
// 代码块
}
在这个例子中,我们使用defer来定义一个匿名函数,该函数会在main函数返回之前执行。如果在代码块中发生了异常,recover函数就会被调用,返回异常信息。我们可以使用switch语句来判断异常类型,并进行相应的处理。
需要注意的是,recover函数只有在defer函数中调用才会生效。如果在其他函数中调用recover,它会返回nil
原文地址: https://www.cveoy.top/t/topic/dfS6 著作权归作者所有。请勿转载和采集!