[go] Go 언어에서의 커스텀 에러 타입

Go 언어에는 내장된 에러 인터페이스가 있으며, 사용자 정의 에러 타입을 만들어 에러 메시지를 더 효율적으로 관리할 수 있습니다.

내장된 에러 인터페이스 (Built-in Error Interface)

Go 언어의 내장된 에러 인터페이스는 error입니다. 이 인터페이스는 다음과 같이 정의됩니다:

type error interface {
    Error() string
}

이 인터페이스를 구현하면 커스텀 에러를 만들 수 있습니다.

커스텀 에러 타입 생성하기

커스텀 에러 타입을 만들려면 Error() 메서드를 구현하는 새로운 타입을 만들면 됩니다.

예를 들어, 다음과 같이 커스텀 에러 타입을 생성할 수 있습니다:

type MyError struct {
    Msg string
}

func (e *MyError) Error() string {
    return e.Msg
}

위의 예제에서 MyError는 내장된 error 인터페이스를 구현하고 있습니다. 이제 MyError 타입을 사용하여 커스텀 에러를 만들 수 있습니다.

커스텀 에러 사용하기

이제 MyError를 사용하여 예외적인 상황에 대한 세부 정보를 더 쉽게 전달할 수 있습니다.

예를 들어:

func Something() error {
    if // 예외적인 조건 {
        return &MyError{"예외적인 상황에 대한 세부 내용"}
    }
    // ...
    return nil
}

위의 예에서 Something 함수는 예외적인 상황이 발생했을 때 MyError를 반환합니다. 이렇게 하면 호출자가 상세한 정보를 포함한 에러를 받아서 처리할 수 있습니다.

커스텀 에러를 만들어서 에러 메시지를 더 효율적으로 관리하는 것은 Go 언어에서 권장되는 방법입니다.

이상으로 Go 언어에서의 커스텀 에러 타입에 대해 알아보았습니다.

더 자세한 정보는 Go 공식 문서를 참고하시기 바랍니다.