Menu
Coddy logo textTech

포맷된 에러 생성하기

Coddy GO 여정의 기초 섹션에 포함된 레슨 — 109개 중 107번째.

형식화된 오류 생성하기...를 사용하면 오류 메시지에 동적 값을 포함할 수 있습니다.

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자 미만) 미리 정의된 사용자 이름이 있습니다. 여러분의 과제는 유효하지 않은 사용자 이름과 최소 요구 길이를 포함하는 형식화된 에러 메시지를 생성하는 것입니다.

치트 시트

fmt.Errorf()를 사용하여 동적 값을 포함한 형식화된 에러 메시지를 생성하세요:

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
}

직접 해보기

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 := // Your code here
		
		// 오류 출력
		fmt.Println(err)
	} else {
		fmt.Println("Username is valid!")
	}
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨