Menu
CoddyTech

创建格式化错误

本课属于 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
challenge icon

挑战

入门

在这个挑战中,你将练习使用 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!")
	}
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Go 在线编译器