panic和recover是Go语言中用于处理异常的机制。当程序遇到无法处理的错误时,可以使用panic引发一个异常,中断程序的正常执行。而recover用于捕获并处理panic引发的异常,使程序能够继续执行。
代码示例:
下面是一个使用panic和recover的示例,处理除数为零的情况:
package main
import "fmt"
func divide(a, b int) int {
defer func() {
if err := recover(); err != nil {
fmt.Println("Error:", err)
}
}()
if b == 0 {
panic("division by zero")
}
return a / b
}
func main() {
result := divide(10, 0)
fmt.Println("Result:", result)
}
执行结果如下: Error: division by zero Result: 0
在上述代码中,我们定义了一个divide
函数,用于执行除法运算。在函数中,我们使用panic
关键字引发一个异常,当除数为零时,会引发一个"division by zero"的异常。
然后,我们使用defer
和recover
来捕获并处理这个异常,打印出错误信息。通过使用recover
,我们可以避免程序因为异常而崩溃,而是继续执行后续的代码。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!