Menu
Coddy logo textTech

단순 에러 생성하기

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

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자 이상이어야 유효한 것으로 간주됩니다. 여러분의 과제는 사용자 이름이 너무 짧을 때 적절한 에러를 반환하여 함수를 완성하는 것입니다.

치트 시트

표준 라이브러리의 errors.New()를 사용하여 사용자 정의 에러를 생성합니다:

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
}

에러를 처리합니다:

result, err := divide(10, 0)
if err != nil {
    fmt.Println("Error:", err)
} else {
    fmt.Println("Result:", result)
}

직접 해보기

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실력 점검

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

기초의 모든 레슨