在 Go 语言中,异常被称为 panic。要自定义一个 panic 类型,你可以创建一个实现了 `error` 接口的结构体。


例如,以下是一个自定义的 panic 类型:





上面的代码创建了一个名为 `MyPanic` 的结构体,并实现了 `error` 接口的 `Error()` 方法。该方法返回一个字符串,表示错误信息。


你可以在代码中使用 `panic` 关键字来抛出该类型的异常:





如果你需要在调用函数中处理该异常,可以使用内置函数 `recover()` 来恢复程序的控制流:





在上面的代码中,`defer` 关键字用于延迟执行匿名函数,该函数包含了对 `recover()` 函数的调用。如果有 panic 发生,则会在延迟执行的函数中进行处理,否则程序将正常运行。