java

예외 처리 (try/catch)

컴공 윤서혜 학습일기 2019. 4. 30. 13:29

어떤 프로그램이든지 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의하여 오류가 발생할 수 있다. 예를 들어 배열의 인덱스가 배열의 한계를 넘을 수도 있고, 디스크에서는 하드웨어 에러가 발생할 수 있다. 자바에서는 이러한 오류를 예외라는 이름으로 부른다. 예외(exception)이란 "exceptional event"의 약자이다. 대개의 경우 오류가 발생하면 프로그램이 종료된다. 그러나 무조건 종료하는 것보다 프로그램에서 오류를 감지하여 우아하게 프로그램을 종료하거나 오류를 처리한 후에 계속 실행할 수 있다면 더 나은 프로그램이 될 수 있다.

 

cf. 버그와예외는 구별하여야 한다. 실행 도중에 버그로 인해서 실행 오류가 발새알 수 있지만 이러한 버그는 개발 과정에서 모두 수정되어야 한다. 자바에서는 버그에 의한 실행 오류도 예외로 취급하지만 진정한 의미에서의 예외는 우리가 예상하였던 상황이 아닌 경우를 의미한다. 예를들면 반드시 존재하여야 하는 파일이 없거나 인터넷 서버가 다운된 경우 등을 진정한 의미에서의 예외라고 할 수 있다.

 

try - catch 문장

자바에서는 기본적으로 try-catch문장을 사용한다. 예외 처리기의 기본 형식은 다음과 같다.

try{
//예외가 발생할 수 있는 코드
} catch (예외 종류 참조변수) {
//예외를 처리하는 코드
}
} finally {
//여기 있는 코드는 try랑 catch랑 상관없이 무조건 실행된다.

try 블록에는 예외가 발생할 가능성이 있는 문장이 들어간다. catch 블록에는 처리하고자 하는 예외의 종류를 지정하고 그 예외를 처리하기 위한 코드가 들어간다. 예외마다 하나의 catch 블록을 지정하여야 한다.

try/catch 블록에서 예외가 발생하는 경우와 발생하지 않는 경우의 실행 흐름을 비교하여 본다면, 먼저 예외가 발생하지 않는 경우에는 catch블록의 코드는 실행되지 않는다. 반면에 예외가 발생한 경우에는 catch 블록의 코드가 실행된다. finally 블록은 항상 실행된다.

 

 

'java' 카테고리의 다른 글

예외처리 추가설명  (0) 2019.07.11
쓰레드(Thread)  (0) 2019.07.11
오버로딩 정리해주세요  (0) 2019.04.23
Wrapper 클래스  (0) 2019.04.22
Object 클래스  (0) 2019.04.22