⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Go 错误处理

error 接口、errors.New、自定义错误、panic/recover · 难度:进阶 · +20XP

Go 错误处理哲学

Go 没有 try-catch。函数返回 error 作为最后一个返回值,调用者显式检查。这不是 bug,是设计选择——显式错误处理让代码更可靠。

创建错误

// 简单错误
err := errors.New("something went wrong")
// 格式化错误
err := fmt.Errorf("处理 %s 时出错: %v", name, reason)

常见模式

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("除数不能为0")
    }
    return a / b, nil
}

result, err := divide(10, 0) if err != nil { fmt.Println("错误:", err) return } fmt.Println("结果:", result)

自定义错误类型

type ValidationError struct {
    Field   string
    Message string
}
func (e *ValidationError) Error() string {
    return fmt.Sprintf("%s: %s", e.Field, e.Message)
}
Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 142 篇
0 完成
🔥 0