throw와 try/catch/finally로 예상 가능한 실패를 처리합니다.
throw는 정상 결과를 만들 수 없음을 알리고 현재 실행 흐름을 중단합니다. catch는 실패를 사용자 안내나 복구 흐름으로 바꾸고 finally는 성공 여부와 관계없이 정리 작업을 실행합니다. 모든 오류를 조용히 무시하지 말고 원인을 추적할 정보도 남깁니다.
코드를 읽을 때는 try { risky(); } catch (error) { ... } finally { ... } 부분부터 찾으세요. 현재 값과 실행 순서를 줄마다 적어 보면 문법을 외우지 않아도 결과를 예측할 수 있습니다.
외부 입력과 실패가 정상 흐름을 깨뜨릴 수 있는 경계에서 사용합니다. 오류를 숨기지 말고 사용자에게 필요한 안내와 개발자가 추적할 정보를 분리하세요.
실행하기 전에 예상 결과를 짧게 적은 뒤 120을 정상값과 숫자가 아닌 값으로 바꿔 각 경로를 확인하세요. 실제 출력이 다르면 콘솔에 처음 나타난 오류와 그 직전 값을 차례로 확인하세요.
catch에서 빈 블록으로 오류를 삼키면 화면은 멈췄는데 원인은 찾기 어려운 상태가 됩니다.
직접 바꿔보세요120을 정상값과 숫자가 아닌 값으로 바꿔 각 경로를 확인하세요.