Java
[JAVA] Exception의 개념
Dero Lee
2021. 12. 27. 02:32
728x90
예외(Exception)
- 예상한 범위를 벗어나는 방식으로 프로그램을 동작시켜 예상치 못한 결과를 내는 경우
- 배열을 다루는 프로그램에서 범위를 벗어난 인덱스를 호출하는 것과 같은 상황
- 0으로 나누는 경우
예외는 오류(컴파일 에러, 시스템 오류)와 달리 피할 수 있게 만들 수 있음.
예외 처리
프로그램을 만들 사람이 설계한 의도대로 운영되지 않았기 때문에 발생함.
예외가 발생할 것으로 예상되는 예외를 처리함.
Exception 클래스
일반적으로 ArithmeticException(RuntimeException으로부터 상속받은 클래스)를 사용하고 Exception 클래스를 이용해 여러 예외를 포괄적으로 처리할 수 있음.
RuntimeException는 Exception 클래스로부터 상속받은 클래스. try에서 발생한 예외는 여러 개의 catch 문을 순서대로
거쳐가며 해당 catch 문의 예외가 이번에 발생한 예외와 맞는지 확인하고 실행함.
catch 문의 e 변수
e라는 인스턴스를 통해 예외가 발생한 원인에 대해 알 수 있는데 getMessage 메소드를 이용하면 알 수 있음.
그러나, 의도에 따라 정보가 노출될 수 있으므로 서버 측에서 로그 파일 등을 이용해 관리자만 볼 수 있게 처리함.
public class ExceptionApp {
public static void main(String[] args) throws ArithmeticException {
System.out.println(1);
int[] scores = {10, 20, 30};
try {
System.out.println(2);
System.out.println(scores[3]);
//ArrayIndexOutOfBoundsException
System.out.println(3);
System.out.println(2/0);
//ArithmeticException
System.out.println(4);
}catch(ArithmeticException e) {
System.out.println("계산 예외");
}catch(ArrayIndexOutOfBoundsException e) {
System.out.println("인덱스 예외");
System.out.println(e.getMessage());
}
System.out.println(5);
}
}
728x90