더북(TheBook)

errors.New() 함수로 에러를 생성한 후 출력해 보자.


package main
 
import (
    "errors"
    "fmt"
)
 
func main() {
    // 새 에러 생성
    errNotFound := errors.New("Not found error")
 
    fmt.Println("error: ", errNotFound)
    fmt.Println("error: ", errNotFound.Error())
}

실행 결과

error: Not found error

error: Not found error

errNotFound를 출력한 결과와 errNotFound.Error()를 출력한 결과가 같다. 즉, 에러를 출력하면 Error() 메서드의 결과 문자열이 출력됨을 알 수 있다.

이것을 함수 내부에 적용해 보자.


func Sqrt(f float64) (float64, error) {
    if f < 0 {
        return 0, errors.New("음수는 사용할 수 없습니다.")
    }
    return math.Sqrt(f), nil
}
 
func main() {
    if f, err := Sqrt(-1); err != nil {
        fmt.Printf("Error: %s\n", err)
    } else {
        fmt.Println(f)
    }
}

실행 결과

error: 음수는 사용할 수 없습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.