예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서는 에러와 동일하다. 그러나 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다.
일반 예외와 실행예외가 있다.
일반 예외는 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요한지 검사하는 것이다. 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다.
실행 예외는 컴파일하는 과정에서 예외 처리 코드를 검사하지 않는 예외이다.
컴파일 시 예외 처리를 확인하는 차이일 뿐, 두 가지 예외는 모두 예외 처리가 필요하다.
실행 예외
실행 예외는 자바 컴파일러가 체크를 하지 않기 때문에 오로지 개발자의 경험에 의해서 예외 처리 코드를 삽입해야 한다.
1. NullPointerException 에러 : null 값의 변수에 객체 접근 연산자인 도트(.)를 사용했을 때 발생.
2. ArrayIndexOutOfBoundsException 에러 : 배열에서 인덱스 범위를 초과하여 사용할 경우 발생.
3. NumberFormatException 에러 : parseInt 등으로 문자열을 숫자로 변환할 수 있지만, 숫자로 변환될 수 없는 문자가 있을 경우 발생.
4. ClassCastException 에러 : 상속 관계, 인터페이스와 구현 클래스 관계가 아닌데 억지로 타입을 변환하려는 경우 발생.
등등 많다.
예외 처리 코드
예외 처리는 try {} catch {} finally {} 코드로 한다.
try {
// 예외가 발생할 수도 있는 코드
} catch(Exception e) {
// 예외를 처리할 코드
} finally {
// 예외와는 관계없이 항상 처리되어야할 코드
}
try 코드에서 예외가 발생하면 즉시 실행을 멈추고 catch 블록을 수행한다. 그리고 finally 블록은 선택적으로 넣을 수 있다.
'개발 관련 지식 > JAVA' 카테고리의 다른 글
제네릭 (0) | 2020.04.06 |
---|---|
멀티 스레드 개념 (0) | 2020.04.04 |
인터페이스에서 디폴트 메소드 (0) | 2020.04.02 |
인터페이스 상속 (0) | 2020.04.02 |
인터페이스 타입변환과 다형성 (0) | 2020.04.02 |