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: 음수는 사용할 수 없습니다.