MST

星途 面试题库

面试题:Go中defer和recover的基础使用

请编写一段Go代码,在函数中使用defer和recover来捕获并处理可能出现的panic,函数接收两个整数参数,进行除法运算,如果除数为0则触发panic,并在defer中恢复,最后返回结果或者错误信息。
35.2万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

func divide(a, b int) (int, error) {
    var result int
    defer func() {
       if r := recover(); r != nil {
          result = 0
          fmt.Println("捕获到panic:", r)
       }
    }()
    if b == 0 {
       panic("除数不能为0")
    }
    result = a / b
    return result, nil
}