零基础 go - 43(自定义错误)

5 阅读1分钟

在 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("正常")
        }
}