[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 문서를 참고하여 더 많은 정보를 얻을 수 있습니다.