에러(Error)와 예외(Exception)
- 에러(Error)
소스코드에 의해서 수습될 수 없는 심각한 오류
- 예외(Exception)
소스코드에 의해서 수습될 수 있는 다소 미약한 오류
예외처리(Exception Handling)이란?
- 코드 실행 중에 발생하는 예외나 오류가 원인으로 전체 시스템의 비정상 동작을 방지하는 기술
- 예외가 주로 발생하는 원인은 아래와 같다.
- 처리 로직이 잘못 작성된 경우
- 산술 연산이 잘못된 경우
- 잘못된 데이터가 입력 된 경우
- 하드웨어 및 소프트웨어의 오작동의 경우
- 시스템 및 네트워크의 과부하 등의 경우
Java 예외처리 인터페이스 및 클래스
try, catch, finally
- 예외처리를 위한 문법
- 각 블록은 아래와 같은 기능을 담당
- try
예외가 발생할 가능성이 있는 처리를 작성
예외처리를 좀 더 세세하게 처리하고 싶을 경우 catch 블럭을 여러개 작성 가능
- catch
발생한 예외의 처리를 작성
- finally
예외 발생 여부와 상관없이 가장 마지막에 항상 실행되는 처리 작성
package Java;
public class HelloJava {
public static void main(String[] args) {
try {
System.out.println("Try block");
double result = 10 / 0;
} catch (Exception e) {
System.out.println("Catch block");
System.out.println(e.getMessage());
} finally {
System.out.println("Finally block");
}
}
}
package Java;
public class HelloJava {
public static void main(String[] args) {
try {
System.out.println("Try block");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("실행 매개값의 수가 부족 또는 숫자로 변환 불가");
} catch (Exception e) {
System.out.println("알수없는 예외 발생");
} finally {
System.out.println("Finally block");
}
}
}
강제 예외 발생
- throw 키워드와 예외 또는 에러 객체를 인스턴스화 하여 강제 예외 발생
예) throw new Exception(’에러메세지’);
package Java;
public class HelloJava {
public static void main(String[] args) {
try {
System.out.println("Try block");
throw new Exception("강제 예외 발생");
} catch (Throwable e) {
System.out.println("Catch block");
System.out.println(e.getMessage());
} finally {
System.out.println("Finally block");
}
}
}