try {
//예외 발생 영역
} catch(예외 처리 클래스 변수) {
//발생한 예외를 처리 하는 코드
}
1)예외가 발생하면 JVM에게 예외를 던진다.
2)JVM은 발생한 예외를 분석한 후 ArrayIndexOutOfBoundsException 객체를 생성한다.
3)JVM은 생성된 예외 객체를 발생된 곳으로 던진다.
4)JVM이 던진 예외 객체를 catch블록이 잡는다
5)예외 처리를 한 후 프로그램이 정상 종료 한다.
package com.java.exception;
public class Exception01 {
public static void main(String[] args) {
// Exception(예외 발생):
// 작은 문제가 발생하더라도 일단은 프로그램이 실행 될 수 있도록 처리해주는 API
int[] arr = new int[2];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
//at com.java.exception.Exception01.m
//이하 프로그램은 실행 안된다는 문제점이 발생한다.
for (int num : arr)
System.out.println(num);
System.out.println("프로그램이 종료");
}
}
ArrayIndexOutOfBoundsException 발생
package com.java.exception;
public class Exception02 {
public static void main(String[] args) {
// Exception Handling(예외 처리):
// 작은 문제가 발생하더라도 일단은 프로그램이 실행 될 수 있도록 처리해주는 API
//1.try(시도, 실행 구문) ~ catch(잡는다 ,예외 발생시 처리)
try { //실행 구문
int[] arr = new int[2];
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
//at com.java.exception.Exception01.m
//예외 처리 과정
//1)예외가 발생한다.
//2)예외가 발생하면 JVM에게 예외를 던진다.
//3)JVM에서 예외를 분석한 후 적절한 처리를 한다.(예외 처리를 위한 객체를 해당 객체에 던져준다.)
//ArrayIndexOutOfBoundsException 객체를 생성하여 던져준다.
//이하 프로그램은 실행 안된다는 문제점이 발생한다.
for (int num : arr)
System.out.println(num);
//4)jVM이 던진 예외 처리 객체를 catch블록이 잡는다.
//5)jVM에서 제공하는 예외 처리 객체를 이용하여 예외를 처리한다.
}catch(ArrayIndexOutOfBoundsException e) { //예외 처리 구문
e.printStackTrace();
System.out.println("ArrayIndexOutOfBoundsException 예외가 발생했습니다.");
}
System.out.println("프로그램이 정상 종료");
}
}
try ~catch 구문으로 예외 처리
try {
//예외 발생 영역
} catch(예외 처리 클래스 변수) {
//발생한 예외를 처리 하는 코드
} catch(예외 처리 클래스 변수) {
//발생한 예외를 처리 하는 코드
}