11.6 요약
이제 예외 처리에 대해 알게 됐으니, 에러를 대비할 때 예상할 수 있는 에러나 예상할 수 없는 예외 어느 쪽이든 예외 처리를 사용하고 싶을 겁니다.
예외를 일으키는 건 대단히 쉽고, 어떻게 처리해야 할지 모르는 상황이 닥쳤을 때 ‘포기’하는 간편한 방법이긴 합니다.
하지만 예외 처리에는 비용이 필요합니다.
예외를 캐치하지 못하는 위험도 있고(프로그램은 정지할 겁니다). 예외 처리 자체도 대가를 지불해야 하는 연산입니다.
예외는 catch 블록을 만날 때까지 스택을 거슬러 올라가야 하므로 자바스크립트 인터프리터가 예외를 계속 추적하고 있어야 합니다.
컴퓨터는 점점 더 빨라지고 있으니 이런 비용은 큰 문제가 되지 않을 수도 있지만, 자주 실행되는 코드에서 예외를 발생시키면 성능 문제가 발생할 가능성이 있습니다.
프로그램을 일부러 멈추게 하는 게 아니라면, 예외를 일으켰다면 반드시 캐치해야 합니다.
원인 없는 결과는 없는 법입니다.
예외 처리는 예상할 수 없는 상황에 대비한 마지노선으로 생각하고, 예상할 수 있는 에러는 조건문으로 처리하는 것이 최선입니다.