在 go中也支持自定义错误。
使用 errors.New() 或 fmt.Errorf() 创建错误对象,并在函数中返回错误。
当调用函数时,可以检查返回的错误对象来确定是否发生了错误,并进行相应的处理。
errors.New()
- 用于创建一个简单的错误对象,接受一个字符串参数作为错误消息。
fmt.Errorf()
-
用于创建一个格式化的错误对象,接受一个格式字符串和相应的参数
-
类似于 fmt.Printf() 的用法,可以生成更详细的错误
panic()
-
用于触发一个运行时错误,通常在遇到不可恢复的错误时使用。
-
它会停止当前函数的执行,并开始逐层向上回退,
-
直到找到一个 recover() 来处理这个 panic
-
如果没找到,程序将崩溃。
自定义错误案例
package main
import (
"errors"
"fmt"
)
// 定义一个函数,可能会返回错误
func riskyFunction(value int) error {
if value < 0 {
return errors.New("值不能为负数")
}
// 其他逻辑 ...
return nil
}
func main() {
err := riskyFunction(-1)
if err != nil {
panic(fmt.Sprintf("An error occurred: %s", err.Error()))
} else {
fmt.Println("正常")
}
}