image

编辑人: 流年絮语

calendar2025-06-02

message1

visits906

Go语言中的panic和recover有什么作用?

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"的异常。

然后,我们使用deferrecover来捕获并处理这个异常,打印出错误信息。通过使用recover,我们可以避免程序因为异常而崩溃,而是继续执行后续的代码。


喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!

创作类型:
原创

本文链接:Go语言中的panic和recover有什么作用?

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。
分享文章
share