Go 语言学习手册
免费学习
完整知识体系
快速检索
Go语言学习手册《错误处理模式(error)》:Go 没有异常处理,而是通过返回值(error 接口)显式处理错误,强制开发者检查错误。 **error 接口定义:** ```go type error interface { Error() string } ``` **使...
错误处理
错误处理模式(error)
【详细说明 & 代码示例】
Go 没有异常处理,而是通过返回值(error 接口)显式处理错误,强制开发者检查错误。
**error 接口定义:**
```go
type error interface {
Error() string
}
```
**使用 errors.New 创建错误:**
```go
import "errors"
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
// 调用
result, err := divide(10, 0)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(result)
```
**自定义错误类型:** 实现 error 接口。
```go
type MyError struct {
Code int
Msg string
}
func (e *MyError) Error() string {
return fmt.Sprintf("error %d: %s", e.Code, e.Msg)
}
```
**错误包装(Go 1.13):** 使用 `fmt.Errorf` 的 `%w` 和 `errors.Is` / `errors.As`。
```go
err := fmt.Errorf("failed: %w", originalErr)
if errors.Is(err, originalErr) { ... }
var myErr *MyError
if errors.As(err, &myErr) { ... }
```
**panic / recover:** 用于严重错误,但正常流程使用 error。
学习提示:建议安装 Go 环境(go.dev/dl),使用 VS Code 或 GoLand 编写代码,并熟练使用 go run、go build、go mod 等命令。
全部章节目录(共 30 个知识点)
Go 基础 (1个知识点)
变量与数据类型 (2个知识点)
控制流程 (2个知识点)
结构体与方法 (2个知识点)
接口(interface) (1个知识点)
指针 (1个知识点)
错误处理 (1个知识点)
包管理 (1个知识点)
并发:goroutine (1个知识点)
并发:channel (1个知识点)
同步原语 (1个知识点)
标准库 (2个知识点)
网络与 HTTP (1个知识点)
测试与性能 (1个知识点)
反射与泛型 (1个知识点)
CGO 与汇编 (1个知识点)
Web 框架 (1个知识点)
数据库操作 (1个知识点)
配置与日志 (1个知识点)
部署与运维 (1个知识点)
设计模式 (2个知识点)
进阶技巧 (2个知识点)
使用说明
- • 本手册涵盖 Go 语言从基础到并发实战、Web 服务的完整知识体系
- • 在搜索框输入关键词,快速定位相关知识点
- • 点击条目标题进入详情页,查看详细说明与代码示例
- • 页面按分类展示所有知识点,方便系统性学习
- • 建议安装 Go 环境并使用 VS Code 或 GoLand 进行实践