
221
8
장
오류
오류 처리는 다른 언어에서
Go
로 넘어온 개발자들에게 가장 큰 도전 과제이다. 예외
exception
에 익숙한 사람들에게는
Go
의 접근 방식은 시대 착오적으로 보일 수 있다. 하지만
Go
의 접
근에는 견고한 소프트웨어 엔지니어링 원칙이 있다. 이 장에서는
Go
에서 오류를 처리하는 방
법을 학습할 것이다. 또한 실행을 중지해야 하는 오류 처리를 위한
Go
의 시스템의
panic
과
recover
도 다룰 것이다.
8.1
오류 처리 방법: 기초
5
장에서 간략하게 다루어 봤듯이,
Go
는 함수에 마지막 반환 값으로
error
타입의 값을 반환
하여 오류를 처리한다. 이것은 전적으로 관례
convention
에 의한 것이지만, 절대 위반해서 안되는
강력한 관례이다. 함수가 예상했던 대로 수행이 되면,
error
파라미터로
nil
이 반환된다. 만
약 문제가 있다면, 오류 값이 반환된다. 호출 함수는 오류 반환 값이
nil
과 비교하여 확인한
뒤, 오류 처리를 하거나 해당 값을 그냥 반환한다. 이와 관련된 코드는 다음과 같다.
func calcRemainderAndMod(numerator, denominator int) (int, int, error) {
if denominator == 0 {
return 0, 0, errors.New(“denominator is 0”) ...