#10. Java - 예외처리

박주현·2023년 7월 24일
0

Java

목록 보기
10/11
post-thumbnail

1. 예외처리

어떠한 원인으로 인해 비정상적인 동작이 발생하고 프로그램이 종료되는 경우를 오류가 발생했다고 한다.
이러한 경우에는 컴파일 시 생기는 컴파일 오류와 런타임 오류가 있다.

1.1 try-catch

가장 일반적으로 사용되는 예외처리로 try구문에는 발생 가능성이 있는 문장으로 넣어주고, catch 구문에는 어떻게 처리할 것인가를 작성한다.

형식

try {
        예외 발생 가능성이 있는 문장
    } catch(예외의 종류) {
        예외가 발생하면 처리할 문장
    }

예시

    public class ExceptionExam {
        public static void main(String[] args) {
            int i = 10;
            int j = 0;
            try{
                int k = i / j;
                System.out.println(k);
            }catch(ArithmeticException e){
                System.out.println("0으로 나눌 수 없습니다. : " + e.toString());
            }finally {
                System.out.println("오류가 발생하든 안하든 무조건 실행되는 블록입니다.");
            }
        }
    }

오류가 발생할 예상 부분에 try라는 블록으로 감싼 후, 예외를 catch 라는 블록으로 처리한다.
오류가 발생했던 안했든 무조건 실행되는 finally 라는 블록을 가질 수 있지만, 생략 가능하다.

1.2 throw 와 throws

예외처리를 강제적으로 발생시키고, 예외를 떠넘긴다.
throw는 예외를 발생시키는 키워드이며 throws는 예외를 떠넘기는 방식을 사용합니다.
throws 는 메소드 선언부 맨 끝에 작성하며, 메소드에서 try-catch를 통해 처리되지 않은 예외를 호출한 곳으로 떠넘기는 역할을 한다.
떠넘긴 예외는 JVM에서 최종적으로 처리를 하지만 권장 사항은 아니다.

예시

public static void main(String[] args) {
    int i = 10;
    int j = 0;
    try{
        int k = divide(i, j);
        System.out.println(k);
    } catch(ArithmeticException e){
        System.out.println("0으로 나눌수 없습니다.");
    }
}
public static int divide(int i, int j) throws ArithmeticException{
    int k = i / j;
    return k;
}
profile
빌드업 막 시작하는 개발자

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

유익한 글이었습니다.

답글 달기