Golang 第五章 4.错误处理
在 Go 中,错误不是异常,而是值。
函数通常返回一个 error 类型来表示错误。
error 类型
Go 内置 error 接口:
type error interface {
Error() string
}可以通过 Error() 方法获取错误描述
常用 fmt.Errorf 或自定义实现返回 error
函数返回错误示例
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, fmt.Errorf("除数不能为零")
}
return a / b, nil
}b 为 0 → 返回错误
否则返回结果 + nil(表示无错误)
调用示例
result, err := divide(10, 0)
if err != nil {
fmt.Println("错误:", err)
} else {
fmt.Println("结果:", result)
}输出:
错误: 除数不能为零忽略错误(不推荐)
result, _ := divide(10, 2)
fmt.Println(result) // 5_ 忽略错误返回值
仅适合确定不会出错的情况
自定义错误类型
type MyError struct {
Code int
Msg string
}
func (e MyError) Error() string {
return fmt.Sprintf("错误 %d: %s", e.Code, e.Msg)
}
func f() error {
return MyError{Code: 404, Msg: "未找到"}
}
err := f()
fmt.Println(err) // 错误 404: 未找到自定义结构体实现 Error() 方法
可以返回更多上下文信息
错误检查惯用法
Go 的习惯写法:
if err := someFunc(); err != nil {
// 处理错误
return err
}将错误立即检查
减少嵌套
是 Go 风格的标准做法
总结
Go 不使用异常
错误是 返回值
使用 error 接口
自定义错误类型可以携带更多信息
调用函数时立即检查错误
v2ray节点购买


评论