[go] Go 언어에서의 예외 처리

Go 언어는 강력한 예외 처리 메커니즘을 제공합니다. Go 언어에서는 error 타입을 통해 예외를 처리합니다. 일반적으로 함수는 error를 반환하여 예외를 알리며, 호출자는 이를 처리할 수 있습니다.

예외 처리하기

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

func main() {
    result, err := divide(10, 0)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println("Result:", result)
}

위 예제에서 divide 함수는 두 정수를 나누고, 결과와 error를 반환합니다. main 함수에서는 divide 함수의 결과와 error를 확인하여 예외를 처리합니다.

예외 전파하기

Go 언어에서는 예외를 호출자에게 전파할 수 있습니다. 이를 위해 호출자에게 error를 반환하고, 호출자는 이를 처리하거나 다시 전파할 수 있습니다.

func readFile(filePath string) ([]byte, error) {
    data, err := ioutil.ReadFile(filePath)
    if err != nil {
        return nil, err
    }
    return data, nil
}

func processFile(filePath string) error {
    data, err := readFile(filePath)
    if err != nil {
        return err
    }
    // 파일 데이터 처리 로직
    return nil
}

위 예제에서 readFile 함수는 파일을 읽어와서 데이터와 error를 반환하고, processFile 함수는 readFile의 결과를 받아서 처리하거나 예외를 전파합니다.

Go 언어의 예외 처리는 명시적이고 강력하여 안정적인 소프트웨어를 개발하는 데 도움이 됩니다.

참고 자료

위의 예제에서는 Go 언어에서의 예외 처리에 대한 기본적인 내용을 다루었습니다. Go 언어 공식 문서 및 Effective Go 문서를 참고하여 더 많은 정보를 얻을 수 있습니다.