NOTE
Q: 컴파일 오류와 예외의 차이는 무엇이죠?
A: 컴파일 오류는 문법이 맞지 않아 발생하는 오류입니다. 예외는 실행 시점에서 잘못된 값으로 발생하거나 여러 상황에서 발생하는 예기치 못한 사건을 말합니다. 예기치 못한 사건이란 레퍼런스 변수를 사용하는 시점에서 해당 변수가 적절한 객체를 레퍼런스하지 않고 null을 가졌다든지, 숫자 값이 들어와야 하는데 문자 값이 들어왔다든지 다양한 경우가 있습니다.
일상 생활을 예로 들어보면 아침에 알람을 맞춰 놓았는데, 자는 동안 알람시계 배터리가 방전돼서 정해진 시간에 알람이 울리지 않는 것도 예외입니다. 항상 7시 15분 버스를 타곤 하는데 그 버스가 고장이 나서 제시간에 도착하지 않는 상황도 예외입니다. 이럴 때 우리는 택시를 타거나 머리를 감지 않고 나가는 등 예외 상황에 대처할 수 있습니다. 하지만 컴퓨터는 이런 상황을 미리 프로그래밍하지 않으면 아무것도 할 수 없습니다.
실행 중에 예외가 발생하면 프로그램을 강제로 종료하죠.
이런 예외 사항이 발생했을 때는 어떻게 해야 할까요? 자바는 예외를 처리할 수 있는 문법을 제공합니다. 앞의 예제로 말하자면 프로그래머는 j라는 변수에 0이 들어올지 모르는 예외 사항을 미리 예측하고 처리할 수 있습니다. 이렇게 처리하는 것을 ‘예외 처리’라고 합니다.
그러면 예외 처리하는 문법을 살펴볼까요? 자바는 예외 처리 시 try-catch-finally 문을 사용합니다.