Menu
CoddyTech

Tạo lỗi có định dạng

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 107 trên 109.

Tạo thông báo lỗi có định dạng... cho phép bạn đưa các giá trị động vào thông báo lỗi.

Hàm (function) fmt.Errorf() tạo lỗi bằng chuỗi đã định dạng, tương tự như 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)
    }
}

Kết quả đầu ra sẽ là:

Error: cannot divide 10 by zero
challenge icon

Thử thách

Người mới

Trong thử thách này, bạn sẽ luyện tập tạo thông báo lỗi có định dạng bằng hàm fmt.Errorf. Bạn có một chương trình kiểm tra tên người dùng và cần tạo thông báo lỗi phù hợp khi tên người dùng không hợp lệ.

Chương trình có một tên người dùng được định sẵn nhưng quá ngắn (dưới 5 ký tự). Nhiệm vụ của bạn là tạo thông báo lỗi có định dạng, bao gồm tên người dùng không hợp lệ và độ dài tối thiểu bắt buộc.

Tự làm thử

package main

import (
	"fmt"
)

func main() {
	// username được định sẵn nhưng quá ngắn
	username := "bob"
	// Độ dài tối thiểu cần có
	minLength := 5
	
	// Kiểm tra username có hợp lệ không
	if len(username) < minLength {
		// TODO: Dùng fmt.Errorf tạo lỗi (error) theo định dạng, bao gồm:
		// 1. username không hợp lệ
		// 2. Độ dài tối thiểu cần có
		// Ví dụ về định dạng: "invalid username: [username] is too short, minimum length is [minLength]"
		err := // Viết code ở đây
		
		// In lỗi ra
		fmt.Println(err)
	} else {
		fmt.Println("Username is valid!")
	}
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online