[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 언어에서는 panicrecover 를 이용해 예상치 못한 상황에서의 에러를 다룰 수 있습니다. panic 은 현재 함수의 실행을 중단하고 호출 스택을 언랩합니다. recoverpanic 에서 발생한 에러를 다시 복구하는 데 사용됩니다.

에러 처리와 관련한 더 많은 내용을 알고 싶다면 Go 공식 문서를 참고하세요.

이상으로 Go 언어에서의 에러 처리 방법에 대해 살펴봤습니다.

참고 자료