티스토리 뷰

★ Java Exception 알아보기



프로그램을 하다 보면 많은 오류 사황과 직면하게 됩니다. 간단한 기능에서는 오류가 발생할 기능성도 적고 발생한다고 해도 금방 찾을 수 있는데요. 만약 기능이 많고 로직이 길어 몇만 라인이 된다고 한다면 중간에 오류가 발생된다면 찾기 매우 어려울 수 있습니다. 이때 적절한 예외 처리를 통해 빠르게 확인 가능할 수도 있고, 적절한 예외 처리를 통해 다음을 진행할 수도 있습니다. 이런 Exception에 대해서 알아보도록 하겠습니다.

 

▶ try-catch 문

try-catch문은 정상적인 처리를 하지 못하고 에러가 발생될 경우 예기치 못한 오류를 처리하기 위한 구문입니다. if문과 달리 try블록이나 catch블록 내에 포함된 문장이 하나라고 해서 괄호를 생략할 수는 없습니다. try문에서 발생할 수 있는 Exception 종류를 모두 사용할 수 있습니다. 만약 모든 오류를 동일하게 처리하고 싶으시다면 최상위 객체인 Exception을 사용하시면 됩니다.



예외가 발생한 경우는 발생한 예외와 일치하는 catch블럭이 있는지 확인합니다. 일치하는 catch블록이 있다면 그 블록 내의 문장들을 수행하고 try-catch문을 빠져나가 다음 문장을 계속해서 수행하게 됩니다. 만약 일치하는 catch블록이 없다면 예외는 처리되지 않습니다. try-catch 블럭에서 오류가 발생하지 않는다면 catch블록은 수행이 되지 않습니다.




▶ finally블럭

예외의 발생 여부와 상관없이 실행되는 코드가 들어가는 부분입니다. try-catch문에서 선택적으로 사용할 수 있으며 필요가 없을 경우 기술하지 않으셔도 됩니다. try문에서 예외가 발생되는 경우에 예외에 맞는 catch문이 실행되고난 다음 finally문이 실행이 됩니다. try문에 return을 만나도 finally블록이 실행됩니다. finally를 사용하는 경우는 보통 자원을 생성하고 마지막에 자원을 해제할 경우 많이 사용합니다. 예를 들어 Connection 객체가 있습니다.



▶ e.toString(), e.getMessage(), e.printStackTrace()

3가지 모두 에러를 확인하기 위해서 사용됩니다. toString()의 경우는 java.lang.Exception: 에러 내용이 표시됩니다. getMessage()의 경우는 에러 메시지만 표시가 됩니다. e.printStackTrace()는 에러 메시지의 발생 근원지를 찾아 단계별로 에러를 출력해 줍니다.

 

지금까지 Java Exception에 대해서 알아보았습니다. 프로그램을 만드실 때 에러 처리만 잘해도 좋은 프로그램을 만들 수 있으니 에러는 한 번쯤 생각하시면서 코딩하시길 바라겠습니다.



댓글