1. 예외 처리의 개요
프로그램의 정상적인 실행을 방해하는 조건이나 상태를 예외 (Exception) 라고 하며, 이러한 예외가 발생했을 때를 대비하여 작성해 놓은 처리 루틴을 수행하도록 하는 것을 예외 처리 (Exception Handling) 라고 한다.
- 예외가 발생했을 때 일반적인 처리 루틴은 프로그램을 종료시키거나 로그를 남기도록 하는 것이다.
- C++, Ada, Java 자바스크립트와 같은 언어에는 예외 처리 기능이 내장되어 있으며, 그 외 언어에서는 필요한 경우 조건문을 이용해 예외 처리 루틴을 작성한다.
- 예외의 원인에는 컴퓨터 하드웨어 문제, 운영체제의 설정 실수, 라이브러리 손상, 사용자의 입력 실수, 받아들일 수 없는 연산, 할당하지 못하는 기억장치 접근 등 다양하다.
2. Java의 예외 처리
Java는 예외를 객체로 취급하며, 예외와 관련된 클래스를 java.lang 패키지에서 제공한다.
- Java 에서는 try~catch 문을 이용해 예외를 처리한다.
- try 블록 코드를 수행하다 예외가 발생하면 예외를 처리하는 catch 블록으로 이동하여 예외 처리 코드를 수행하므로 예외가 발생한 이후의 코드는 실행되지 않는다.
- catch 블록에서 선언한 변수는 해당 catch 블록에서만 유효하다.
- try~catch 문 안에 또 다른 try~catch 문을 포함할 수 있다.
- try~catch 문 안에서는 실행 코드가 한 줄이라도 중괄호({ }) 를 생략할 수 없다.
try {
// 예외가 발생할 가능성이 있는 코드
} catch (예외객체1 매개변수) {
// 예외객체1에 해당하는 예외 발생 시 처리 코드
} catch (예외객체2 매개변수) {
// 예외객체2에 해당하는 예외 발생 시 처리 코드
...
} catch (예외객체n 매개변수) {
// 예외객체n에 해당하는 예외 발생 시 처리 코드
} catch (Exception 매개변수) {
// 예외객체 1~n 에 해당하지 않는 예외 발생 시 처리 코드
} finally {
// 예외의 발생 여부와 관계 없이 무조건 처리되는 코드
}
- 일반적으로 예외가 발생한 경우에는 ‘try → catch → finally’ 문 순서로 진행되며, 예외가 발생하지 않은 경우에는 ‘try → finally’ 문 순서로 진행된다.
- finally 문은 예외 발생과 관계없이 무조건 수행되는 블록이며, 생략이 가능하다.
3. Java의 주요 예외 객체
- ClassNotFoundException : 클래스를 찾지 못한 경우
- NoSuchMethodException : 메소드를 찾지 못한 경우
- FileNotFoundException : 파일을 찾지 못한 경우
- InterruptedIOException : 입출력 처리가 중단된 경우
- ArithmeticException : 0으로 나누는 등의 산술 연산에 대한 예외가 발생한 경우
- IllegalArgumentException : 잘못된 인자를 전달한 경우
- NumberFormatException : 숫자 형식으로 변환할 수 없는 문자열을 숫자 형식으로 변환한 경우
- ArrayIndexOutOfBoundsException : 배열의 범위를 벗어난 접근을 시도한 경우
- NegativeArraySizeException : 0보다 작은 값으로 배열의 크기를 지정한 경우
- NullPointerException : 존재하지 않는 객체를 참조한 경우
'자격증 > 정보처리필기' 카테고리의 다른 글
[정보처리산업기사] 52강 절차적 프로그래밍 언어 (0) | 2022.03.31 |
---|---|
[정보처리산업기사] 57강 프로토타입 (0) | 2022.03.31 |
[정보처리산업기사] 55강 라이브러리 (0) | 2022.03.31 |
[정보처리산업기사] 54강 스크립트 언어 (0) | 2022.03.31 |
[정보처리산업기사] 53강 객체지향 프로그래밍 언어 (0) | 2022.03.31 |