Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > golang panic 函数

golang panic 函数用法示例详解

作者:学会了没

在Go语言中,panic用于触发不可恢复的错误,终止函数执行并逐层向上触发defer,最终若未被recover捕获,程序会崩溃,recover用于在defer函数中捕获panic,恢复程序流程,建议优先返回error,仅在严重错误或不可恢复场景下使用panic,并在关键位置recover,感兴趣的朋友一起看看吧

在 Go 语言中,panicrecover 是用于处理运行时异常的关键字。以下是它们的用法总结和示例:

1. panic 的作用

2. 基本用法

package main
import \"fmt\"
func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println(\"Recovered from panic:\", r)
        }
    }()
    fmt.Println(\"Start\")
    panic(\"something bad happened\") // 触发 panic
    fmt.Println(\"End\") // 不会执行
}

输出

Start
Recovered from panic: something bad happened

3. recover 的使用规则

func mayPanic() {
    panic(\"a problem occurred\")
}
func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println(\"Recovered. Error:\", r)
        }
    }()
    mayPanic() // 触发 panic
    fmt.Println(\"After mayPanic()\") // 不会执行
}

4. 错误处理建议

Web 服务器示例

func handleRequest() {
    defer func() {
        if err := recover(); err != nil {
            log.Println(\"Request failed:\", err)
        }
    }()
    // 处理请求逻辑(可能触发 panic)
}

5. 常见错误场景

总结

通过合理使用这两个关键字,可以提升程序的健壮性,避免因未处理异常导致的崩溃。

到此这篇关于golang panic 函数用法的文章就介绍到这了,更多相关golang panic 函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文