Home [Go] Golang에서 커스텀 에러를 생성해보자
Post
Cancel

[Go] Golang에서 커스텀 에러를 생성해보자

[Go] Golang에서 커스텀 에러를 생성해보자

goerror타입을 기본적으로 제공해줍니다. go공식페이지에서 error타입을 찾아보면 아래와 같습니다.

1
2
3
type error interface{
    Error() string
}

문자열을 반환해주는 Error() 메소드를 갖는 객체들은 모두 에러 타입이 될 수 있습니다. 따라서 우리는 아래와 같이 커스텀 에러를 만들어 줄 수 있습니다.

1
2
3
4
5
6
7
8
type CustomError struct{
    Code string
    Message string
}

func (e *CustomError) Error() string{
    return e.Code + ", " + e.Message
}

CustomError구조체에 code, message 두개의 파라미터를 갖게 하고 에러코드와 에러메세지를 함께 반환해주는 Error()메소드를 구현해 주었습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func isSame(a int, b int) (bool, error){
    if a == b{
        return true, &CustomError{Code: "C001", Message: "Not same"}
    }
    return false, nil
}

func main(){
    a := 10
    b := 10
    result, err := isSame(a, b)
    if err != nil{
        fmt.Println(err.Error())
    }
}

간단하게 예제코드를 작성해보았는데 사실 함수에 들어온 두 정수형 변수가 같지 않을 때 에러값을 리턴해준다는 것이 적절하진 않지만… 아무튼,, 위와 같은 방식으로 함수안에서 예외상황이 발생했을 때 에러를 반환해주어 내가 잡고자 하는 에러를 핸들링해줄 수 있습니다.

This post is licensed under CC BY 4.0 by the author.

[Js] 자바스크립트: (4)프로토타입과 this

[Js] var, let, const의 차이점에 대해 알아보자