[JAVA] 예외 처리

용용학생·2024년 4월 9일

자바

목록 보기
10/32

프로그램 실행 중에 예외가 발생했을 때 예외를 처리해주어야 한다.
예외를 처리해주지 않으면 개발자의 의도와 다르게 프로그램이 강제 종료될 수 있다.

try-catch 문

try-catch 문은 개발자가 예외를 직접 처리하기 위한 문법이다.

기본 구조

	try {
    	// 예외가 발생할 가능이 있는 실행문(try 블럭)
    } catch(처리할 예외 타입 선언) {
    	// 예외 처리문(catch 블럭)
    } finally { // 생략 가능
    	// 예외 여부와는 관계 없이 무조건 실행되는 문장(finally 블럭)
    }
  • 예외가 발생할 수 있는 실행문을 try 블럭 안에 작성
  • try 블럭에서 예상한 예외가 발생했을 때 실행시킬 문장을 catch 블럭에 작성
    • 만약 예외가 발생하지 않았다면 catch 블럭은 실행되지 않고 넘어감
  • 예외와는 관계 없이 항상 실행시킬 문장은 finally 블럭에 작성

예외 처리 예제

정수를 0으로 나눌 때 생기는 예외

public class Main {
	public static void main(String[] args) {
    	int a, b, c;
        try {
        a = 10;
        b = 0;
        c = a / b; // 10 / 0 -> 산술오류 ArithmeticException 발생
    } catch (ArithmeticException e) {
    	System.out.println("정수를 0으로 나누어서 예외가 발생");
    } finally {
    	System.out.println("try - catch 문 종료");
    }
}

정수의 나눗셈에서 제수가 0일 때 ArithmeticException 오류가 발생하기 때문에 예외처리를 해주어야 한다.

배열의 범위를 벗어나 원소를 접근하는 예외

public class Main {
	public static void main(String[] args) {
    	int[] arr = new int[5];
        try {
        arr[3] = 7;
        arr[6] = 11; // 배열의 범위를 넘어선 인덱스를 참조
    } catch (ArrayIndexOutOfBoundsException e) {
    	System.out.println("배열의 범위를 벗어났습니다.");
    } finally {
    	System.out.println("try - catch 문 종료");
    }
}

선언된 배열의 범위를 벗어나는 예외를 처리해주어야 한다.

profile
자바 스프링 공부하는 정리 블로그!

0개의 댓글