Golang
在Go语言中,有两种用于处于异常的机制,分别是error和panic;
panic
panic 是 Go 中处理异常情况的机制,用于表示程序遇到了无法恢复的错误,需要终止执行。
使用场景
- 程序出现严重的不符合预期的问题,比如数组越界访问、map并发操作;
- 程序的初始化或关键部分出现问题,比如配置文件丢失或数据库连接失败。
示例代码
package main
import (
"fmt"
)
// 会引发 panic 的函数
func mayPanic() {
panic("something went wrong!")
}
// 使用 recover机制 捕获 panic
func safeFunction() {
defer func() {
if r := recover(); r != nil {
fmt.Println("Recovered from panic:", r)
}
}()
mayPanic()
fmt.Println("This line will not be executed if panic occurs.")
}
func main() {
fmt.Println("Starting the program...")
safeFunction()
fmt.Println("Program continues to execute after recovering from panic.")
}
error
error 是 Go 中用于处理预期错误的机制,常用于函数返回值中。
使用场景
- 被调用函数可能出现失败,但这种失败是业务逻辑的一部分,比如文件不存在或用户重复操作;
- 函数调用者需要可以根据错误返回值进行下一步处理。
示例代码
package main
import (
"errors"
"fmt"
)
func divide(a, b int) (int, error) {

最低0.47元/天 解锁文章

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



