


代码:https://github.com/NIGHTFIGHTING/go_learning/blob/master/src/errhandling/recover/recover.go
package main
import (
//"errors"
"fmt"
)
func tryRecover() {
defer func() {
r := recover()
if err, ok := r.(error); ok {
fmt.Println("Error occurred:", err)
} else {
//panic(r)
panic(fmt.Sprintf(
"I don't know what to do: %v", r))
//panic: 123 [recovered]
//panic: I don't know what to do: 123
}
}()
//panic(errors.New("this is an error"))
//b := 0
//a := 5/b
//fmt.Println(a)
//Error occurred: runtime error: integer divide by zero
panic(123)
}
func main() {
tryRecover()
}

本文探讨了Go语言中错误处理的重要性,通过示例代码详细解释了如何使用defer和recover来捕获并处理运行时错误,避免程序崩溃,提供了一种优雅地处理异常情况的方法。
4万+

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



