Menu
CoddyTech

创建简单错误

本课属于 Coddy GO 学习旅程的“基础知识”单元。第 106 课,共 109 课。

在 Go 中,你可以使用标准库中的 errors.New() 函数创建自定义错误。

导入 errors 包:

import (
    "errors"
    "fmt"
)

创建一个带有消息的简单错误:

func divide(a, b int) (int, error) {
    if b == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    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 by zero
challenge icon

挑战

入门

在这个挑战中,你将练习使用 errors.New() 函数在 Go 中创建一个简单的错误。

你有一个用于检查用户名是否有效的函数。用户名至少包含 5 个字符才有效。你的任务是补全这个函数,在用户名太短时返回适当的错误。

亲手试试

package main

import (
	"errors"
	"fmt"
)

func main() {
	// 用有效的用户名测试
	result, err := validateUsername("gopher123")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}

	// 用无效的用户名测试
	result, err = validateUsername("go")
	if err != nil {
		fmt.Println("Error:", err)
	} else {
		fmt.Println(result)
	}
}

func validateUsername(username string) (string, error) {
	if len(username) < 5 {
		// TODO:返回一个错误,错误消息为 "username must be at least 5 characters long"
		// 提示:使用 errors.New() 创建一个新错误
		return "", nil // 替换这一行
	}
	return "Username is valid", nil
}
quiz icon自我测试

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

基础知识中的所有课

自己练习: Go 在线编译器