MST

星途 面试题库

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

在Go语言中,简要描述panic和recover的作用,并举一个简单的示例说明如何使用它们来处理异常情况,示例代码需包含一个自定义错误引发panic,然后使用recover捕获并处理。
21.9万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试

panic的作用panic用于主动抛出一个运行时错误,它会导致当前函数立即停止执行,并开始展开调用栈,即调用栈中当前函数之上的所有函数都会被依次终止执行,直到遇到recover或者程序终止。

recover的作用recover用于在defer函数中捕获panic抛出的错误,使程序能够从panic状态中恢复并继续执行,而不是直接崩溃。它只能在defer函数内部使用。

示例代码

package main

import (
    "fmt"
)

func main() {
    defer func() {
        if r := recover(); r != nil {
            fmt.Println("Recovered from panic:", r)
        }
    }()

    customError := fmt.Errorf("这是一个自定义错误")
    panic(customError)
}