panic 与 recover

1. panic

panic 用于触发运行时错误,导致程序中断执行:

func divide(a, b int) int {
    if b == 0 {
        panic("division by zero")
    }
    return a / b
}

`

2. recover

recover 用于捕获 panic,实现错误恢复,必须在 defer 中调用:

func safeDivide(a, b int) (result int) {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
            result = 0
        }
    }()
    result = divide(a, b)
    return
}

3. 使用场景

  • panic 适用于不可恢复的严重错误
  • recover 用于防止程序崩溃,实现容错

合理使用 panic 与 recover,提升程序的健壮性。