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