취미처럼

[JAVA] 예외처리 본문

JAVA/이론

[JAVA] 예외처리

sirius 2021. 3. 22. 09:50

프로그램 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료되는 것을 에러 또는 오류라 한다.

자바에서는 실행시 발생할 수 있는 프로그램 오류를 에러(error)와 예외(exception) 두 가지로 구분한다.

예외는 에러에 비해 비교적 덜 심각한 상황으로 프로그래머가 관리해야할 예외(exception)와 실행중에 발생하는 에러(runtime exception)로 구분할 수 있다.

예외 클래스는 Throwable을 상속받는다.

 

자바의 예외 처리는 4가지 방법으로 처리할 수 있다.

1. 예외가 발생한 메서드 안에서 처리(try-catch-finally)

2. 예외가 발생한 메서드를 호출한 곳에서 처리(throws)

3. 강제로 예외를 발생시켜서 처리(throw)

4. 사용자 예외를 생성하여 처리

try {
    //실행 프로그램이 작성
    //예외가 발생할 가능성이 있는 코드
} catch(예외타입1) {
    //try블록 안에서 예외 타입1이 발생할 경우 처리할 코드 
} catch(예외타입2) {
    //try블록 안에서 예외 타입2가 발생할 경우 처리할 코드
} finally {
    //예외가 발생해도 실행하고, 예외가 발생하지 않아도 실행되는 코드 
}

 

class InsertZeroException extends Exception {
    public InsertZeroException() {
        super("0을 입력할 수 없습니다.");
    }
}

public class Main {
    public static void main(String[] args) {
        while(true) {
            try {
                divisionMethod();
            } catch(InsertZeroException e) {
                e.printStackTrace();
                e.getMessage();
            } finally {
                System.out.println("마지막 무조건 실행");
            }
        }
    }
    
     public static void divisionMethod() throws InsertZeroException {
            Scanner scan = new Scanner(System.in);
            int value = scan.nextInt();
            if(value == 0) 
            {
                throw new InsertZeroException();
            }
            System.out.println(9/value);
    }
}

 

'JAVA > 이론' 카테고리의 다른 글

[JAVA] 객체 비교  (0) 2021.03.22
[JAVA] MessageDigest  (0) 2021.03.22
[JAVA] 객체 직렬화  (0) 2021.03.22
[JAVA] 정규식  (0) 2021.03.22
[JAVA] 날짜, 시간  (0) 2021.03.22
Comments