panic异常

本文详细介绍了Go语言中的panic和recover机制。panic用于主动抛出异常,导致程序中断并执行延迟函数,随后输出日志信息和堆栈跟踪。而recover则用于捕获异常,帮助程序恢复到正常状态。理解这两个关键字对于编写健壮的Go代码至关重要。
摘要由CSDN通过智能技术生成

先抛出一个问题:
在这里插入图片描述

这段代码的panic的作用是什么??

一般而言,当panic异常发生时,程序会中断运行,并立即执行在该goroutine中被延迟的函数(defer 机制)。随后,程序崩溃并输出日志信息。日志信息包括panic value和函数调用的堆栈跟踪信息。panic value通常是某种错误信息。
对于每个goroutine,日志信息中都会有与之相对的,发生panic时的函数调用堆栈跟踪信息。通常,我们不需要再次运行程序去定位问题,日志信息已经提供了足够的诊断依据。因此,在我们填写问题报告时,一般会将panic异常和日志信息一并记录。

所以大体上只需要知道panic就是一个异常抛出的作用

• panic
panic 这个词,在英语中具有恐慌、恐慌的等意思。从字面意思理解的话,在 Go 语言中,代表极其严重的问题,程序员最害怕出现的问题。一旦出现,就意味着程序的结束并退出。Go 语言中 panic 关键字主要用于主动抛出异常,类似 java 等语言中的 throw 关键字。

• recover
recover 这个词,在英语中具有恢复、复原等意思。从字面意思理解的话,在 Go 语言中,代表将程序状态从严重的错误中恢复到正常状态。Go 语言中 recover 关键字主要用于捕获异常,让程序回到正常状态,类似 java 等语言中的 try … catch 。

参考:
https://docs.hacknode.org/gopl-zh/ch5/ch5-09.html
https://draveness.me/golang/docs/part2-foundation/ch05-keyword/golang-panic-recover/
https://xiaomi-info.github.io/2020/01/20/go-trample-panic-recover/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值