创建格式化错误
本课属于 Coddy GO 学习旅程的“基础知识”单元。第 107 课,共 109 课。
创建格式化错误...可以让你在错误消息中包含动态值。
fmt.Errorf() 函数可以创建带格式化字符串的错误,类似于 fmt.Printf():
import (
"fmt"
)
func divide(a, b int) (int, error) {
if b == 0 {
return 0, fmt.Errorf("cannot divide %d by zero", a)
}
return a / b, nil
}
func main() {
result, err := divide(10, 0)
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Result:", result)
}
}输出为:
Error: cannot divide 10 by zero挑战
入门在这个挑战中,你将练习使用 fmt.Errorf 函数创建格式化的错误消息。你有一个用于验证用户名的程序,需要在用户名无效时创建恰当的错误消息。
程序中预先定义的用户名太短(少于 5 个字符)。你的任务是创建一条格式化的错误消息,其中包含无效的用户名和要求的最小长度。
亲手试试
package main
import (
"fmt"
)
func main() {
// 预先设置的用户名,长度太短
username := "bob"
// 要求的最小长度
minLength := 5
// 检查用户名是否有效
if len(username) < minLength {
// TODO:使用 fmt.Errorf 创建格式化的错误,其中包含:
// 1. 无效的用户名
// 2. 要求的最小长度
// 格式示例:"invalid username: [username] is too short, minimum length is [minLength]"
err := // 在这里编写代码
// 输出错误
fmt.Println(err)
} else {
fmt.Println("Username is valid!")
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Go 在线编译器