Java

Java 문법(11)끝 - 예외처리 (try-catch, Exception)

sangchu 2022. 2. 8. 12:43
  • 런타임 오류(Run-time Error): 프로그램 동작 중 발생하는 오류
  • 예외처리: 런타임 오류 발생을 막기 위해 적당한 안전장치를 구현하는 것 → 프로그램의 안정성을 높이고, 신뢰도를 높임

 

try-catch문

public class Main {

	public static void main(String[] args) {
		
		int [] Arr = new int[3];
		
		for(int j = 0 ; j < 4 ; j++) {
			Arr[j] = j;
		}
	}
}
  • 위 코드 실행시 에러 뜸 → Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at Main.main(Main.java:8)
    • 위 문구는 "Main클래스의 main 메소드에서(Main.java 파일의 8번째 줄) ArrayIndexOutOfBoundsException이 발생했다 "라는 뜻
    • ArrayIndexOutOfBoundsException은 배열의 크기보다 더 크거나 작은 위치를 접근하고자 할 때 발생하는 Exception
public class Main {

	public static void main(String[] args) {
		
		int [] Arr = new int[3];
		
		try {
			for(int j = 0 ; j < 4 ; j++) {
				Arr[j] = j;
			}
		} catch (ArrayIndexOutOfBoundsException e) {
			System.out.println("Exception!!!");
		}
	}
}

// > Exception!!
  • try-catch문을 사용하면 프로그램이 정상 동작함
  • try문 안에 있는 소스코드: 해당 부분에서 런타임 오류가 발생할 시 프로그램이 바로 종료되는 것이 아니라 catch문으로 넘어감
  • catch문에 있는 exception 클래스가 try문 내에서 발생하는 exception과 일치해야 함

 

Exception

  • try-catch문에 사용되는 클래스
  • 런타임 오류가 발생할 시 해당 오류와 관계있는 Exception을 발생하면서 프로그램이 강제 종료됨
  • 모든 세부적인 Exception들은 전부 자바의 기본 클래스 중 하나인 Exception이라는 클래스에서 상속받아 구현되어 있음

  • Exception 클래스들의 상속 형태 
    • Exception 밑으로 여러가지 Exception 클래스들이 상속되어 있음
    • Exceptiom 클래스 하나만 사용하더라도 모든 종류의 오류를 다 잡아낼 수 있음

 

 

 

 

 

 

'바로 실행해보면서 배우는 java'를 학습하며 정리한 문서