[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 언어는 안정적이고 효율적인 에러 처리를 지원합니다.
참고 문헌:
- https://gobyexample.com/errors
- https://blog.golang.org/error-handling-and-go