[go] 에러 처리 방법
이 포스트에서는 Go 언어에서의 에러 처리 방법에 대해 알아보겠습니다.
1. 에러 타입
Go 언어에서는 error
타입을 통해 프로그램 내에서 에러를 처리합니다. error
타입은 다음과 같이 정의됩니다:
type error interface {
Error() string
}
이 인터페이스는 Error()
메서드를 정의하고 있으며, 에러 메시지를 반환합니다.
2. 에러 발생
에러를 발생시키는 방법은 간단합니다. 다음과 같이 에러를 생성하고 반환할 수 있습니다:
import (
"errors"
"fmt"
)
func someFunction() error {
return errors.New("Something went wrong")
}
3. 에러 처리
Go 언어에서는 에러 처리를 위해 다음과 같이 if
문과 함께 사용하는 관례를 따릅니다:
func main() {
err := someFunction()
if err != nil {
fmt.Println("에러 발생:", err)
return
}
// 에러가 발생하지 않은 경우의 로직
}
또는 if
문과 함께 에러를 처리하고 반환하는 방법도 일반적입니다:
func someFunction() error {
err := doSomething()
if err != nil {
return fmt.Errorf("에러 발생: %v", err)
}
// 에러가 발생하지 않은 경우의 로직
return nil
}
위와 같이 fmt.Errorf()
를 통해 에러 메시지를 포맷할 수 있습니다.
Go 언어에서는 에러를 처리하는 defer
문과 함께 사용하는 방법도 있습니다. defer
문에 대해 더 알고 싶다면 공식 문서를 참고하시기 바랍니다.
4. 패닉과 복구
Go 언어에서는 panic
과 recover
를 이용해 예상치 못한 상황에서의 에러를 다룰 수 있습니다. panic
은 현재 함수의 실행을 중단하고 호출 스택을 언랩합니다. recover
는 panic
에서 발생한 에러를 다시 복구하는 데 사용됩니다.
에러 처리와 관련한 더 많은 내용을 알고 싶다면 Go 공식 문서를 참고하세요.
이상으로 Go 언어에서의 에러 처리 방법에 대해 살펴봤습니다.