[go] 에러 처리 패턴

에러를 처리하는 가장 일반적인 방법은 값을 반환하는 함수에 에러 상태를 함께 반환하는 것입니다. 이때, 함수는 일반적으로 두 개의 반환 값을 갖게 됩니다. 일반적으로 error 타입을 반환하며, 에러가 없는 경우 nil을 반환합니다.

func divide(x, y float64) (float64, error) {
    if y == 0 {
        return 0, errors.New("cannot divide by zero")
    }
    return x / y, nil
}

result, err := divide(4.0, 2.0)
if err != nil {
    fmt.Println("에러 발생:", err)
} else {
    fmt.Println("결과:", result)
}

에러를 처리할 때, 자주 사용되는 패턴 중 하나는 if err != nil를 이용한 에러 확인입니다. nil이 아닐 때 에러 메시지를 처리하거나 리턴하는 등의 작업을 수행할 수 있습니다.

또 다른 패턴으로 defer 문을 사용하여 에러를 처리하는 것이 있습니다. 이를 통해 함수가 끝날 때 에러를 처리할 수 있습니다.

다른 패턴들도 있겠지만, 이처럼 다양한 방법으로 Go 언어는 안정적이고 효율적인 에러 처리를 지원합니다.

참고 문헌: