Go 语言的 panic 和 recover

Go 语言的 panic 和 recover 是两种用于处理异常的机制。

它们允许在程序运行过程中进行错误处理,特别是处理那些不可恢复的错误和恢复程序的执行。

panic 和 recover 并不像其他语言中的 try-catch 机制那样常见,而是提供了控制程序流程的一种方法。

  1. panic 机制

panic 用于表示程序遇到了一个不可恢复的错误,或者程序处于一个不应继续执行的状态。它会触发运行时的异常,并停止当前函数的执行,直到调用 recover 或程序退出。

1.1 panic 的使用

当你遇到一个严重的错误或不合法的操作时,可以调用 panic 来终止当前函数的执行,并开始触发一系列的 defer 函数。

panic 会导致当前函数的执行停止,并且会递归地向上层函数传播,直到程序结束或者有 recover 恢复它。

使用 panic 终止程序


func divide(a, b int) int {
   
   
	if b == 0 {
   
   
		panic("division by zero") // 如果除数为零,抛出 panic
	}
	return a / b
}

func main() {
   
   
	fmt.Println("Starting program")

	// 这里会触发 panic
	result := divide(10, 0)

	fmt.Println("Result:", result) // 这行代码不会执行
}
当 b == 0 时,panic 被触发,程序会停止当前函数的执行,并开始递归传播。

panic 的错误信息是 "division by zero",这将显示在控制台。

调用 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可能只会写BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值