본문 바로가기
코스웨어/10년 스마트폰BSP

[BSP]업무일지-서유해-20100823

by 알 수 없는 사용자 2010. 8. 23.
728x90
반응형

예외처리의 정의와 목적


예외처리(Exception handling)란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이며, 예외처리의 목적은 예외의 발생으로 인한 실행중인 프로그램의 갑작스런 비정상 종료를 막고, 정상적인 실행상태를 유지할 수 있도록 하는 것 이다.

예외처리구문 - try-catch

예외를 처리하기 위해서는 try - catch 문을 사용하며 그 구조는 다음과 같다.

try{

//예외가 발생할 가능성이 있는 문장들을 넣는다.

} catch(Exception1 e1) {

// Exception1이 발생했을 경우, 이를 처리하기 위한 문장을 적는다.

} catch(Exception2 e2) {

// Exception2가 발생했을 경우, 이를 처리하기 위한 문장을 적는다.

...

} catch (ExceptionN eN) {

// ExceptionN 이 발생했을 경우, 이를 처리하기 위한 문장을 적는다.





하나의 try 블럭 다음에는 여러 종류의 예외를 처리할 수 있도록 하나 이상의 catch 블럭이 올 수 있으며, 이 중 발생한 예외의 종류와 일치하는 단 한 개의 catch블럭만 수행된다. 발생한 예외의 종류와 일치하는 catch 블럭이 없으면 예외는 처리되지 않는다.

예제코드



위의 예제는 ArithmeticException 이 발생했을 경우에는 0을 화면에 출력하도록 한다.

Try - catch 문에서의 흐름

1. 발생한 예외와 일치하는 catch 블럭이 있는지 확인한다.

2. 일치하는 catch블럭을 찾게 되면, 그 catch블럭 내의 문장들을 수행하고 전체 try-catch문을 빠져나가서 그 다음 문장을 계속해서 수행한다. 만일 일치하는 catch블럭을 찾지 못하면, 예외는 처리되지 못한다.

try 블럭 내에서 예외가 발행하지 않은 경우,

1. catch블럭을 거치지 않고 전체 try - catch문을 빠져나가서 수행을 계속한다.

finally 블럭

finally블럭은 try - catch문과 함께 예외의 발생여부에 상관없이 실행되어야할 코드를 포함시킬 목적으로 사용된다.

try{

//예외가 발생할 가능성이 있는 문장들을 넣는다.

}catch (Exception1 e1) {

//예외처리를 위한 문장을 적는다.

} finally {

//예외의 발생여부에 관계없이 항상 수행되어야하는 문장들을 넣는다.

// finally 블럭은 try - catch문의 맨 마지막에 위치해야 한다.

}





예를 들어 프로그램을 설치하는 코드를 작성했다고 하면 프로그램의 설치과정 중에 예외가 발생하더라도, 설치에 사용된 임시파일들이 삭제되도록 finally블럭을 사용하였다
728x90