포맷된 에러 생성하기
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챌린지
초급이 챌린지에서는 fmt.Errorf 함수를 사용해 형식이 지정된 오류 메시지를 만드는 연습을 합니다. 사용자 이름을 검증하는 프로그램이 있으며, 사용자 이름이 유효하지 않을 때 적절한 오류 메시지를 만들어야 합니다.
프로그램에는 너무 짧은(5자 미만) 사용자 이름이 미리 지정되어 있습니다. 여러분의 과제는 유효하지 않은 사용자 이름과 필요한 최소 길이를 포함하는 형식이 지정된 오류 메시지를 만드는 것입니다.
직접 해보기
package main
import (
"fmt"
)
func main() {
// 너무 짧은 미리 정의된 username
username := "bob"
// 필요한 최소 길이
minLength := 5
// username이 유효한지 확인
if len(username) < minLength {
// TODO: fmt.Errorf를 사용해 다음을 포함하는 형식화된 오류를 생성하세요:
// 1. 유효하지 않은 username
// 2. 필요한 최소 길이
// 형식 예시: "invalid username: [username] is too short, minimum length is [minLength]"
err := // 여기에 코드를 작성하세요
// 오류를 출력하세요
fmt.Println(err)
} else {
fmt.Println("Username is valid!")
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
2변수와 기본 자료형
변수란 무엇인가`:=`를 이용한 타입 추론정수 (int)부동 소수점 수불리언 (Booleans)문자열 (Strings)제로 값 (Zero Values)상수명명 규칙요약 - 변수와 타입직접 연습해 보세요: 온라인 Go 컴파일러