예외처리

KIHYUK MOON·2023년 2월 7일
0
post-thumbnail
post-custom-banner

프로그램에서 오류가 발생하는 상황은 크게 두가지이다. 하나는 프로그램 코드 작성 중 실수로 발생하는 컴파일 오류이고 다른 하나는 실행중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 실행 오류이다.
프로그램이 비정상적으로 종료되는 것을 막기 위해 예외처리를 할 수 있다.
프로그램에서 예외 상황이 발생 했을 경우 프로그램의 갑작스러운 종료를 막고, 정상적인 실행을 유지 할 수 있도록 처리하는 코드를 예외처리 코드라고 한다.

예외 클래스의 종류

try ~ catch

try {
} catch (처리할 예외클래스명 객체1) {
} finally {} // 예외 발생으로 try{} 안의 코드가 중단되더라도 반드시 실행해야 하는 코드

예외 상황

  • ArrayIndexOutOfBoundsException = 배열의 길이 초과
  • FileNotFoundException = 존재하지 않는 파일을 열려고 시도할 때
  • NullPointerException = 프로그램이 null 값으로 설정된 개체를 참조하려 할때
  • ArithmeticException = 0으로 나누었을때

예외처리 미루기

  • 해당 메소드 안에서 발생한 예외 처리에 대한 책임을 메소드를 호출한 쪽으로 떠넘길 수 있다.
public class IOSample {
    private int num;

    public void input() throws IOException {
        num = System.in.read();
    }
    public void output() {
        System.out.println(num);
    }
}
public static void main(String[] args) {
    IOSample test = new IOSample( );
    try{
        test.input();
        test.output();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (ArrayIndexOutOfBoundsException e) {
        e.printStackTrace();
    }
}

예외처리 던지기

  • 원하는 조건 상황에서 필요한 경우 예외 객체를 생성시키면서 예외를 발생 시킬 수 있다.
public static void main(String[] args) {
    ThrowEx ex = new ThrowEx();
    ex.printStr(5);
}
public class ThrowEx {
    String str = null;
    public void printStr(int cnt) {
        if(str == null) {
            System.out.println("str이 null이다");
            throw new NullPointerException();
        }
        for(int i = 0; i < cnt; i++) {
            System.out.println(str);
        }
    }
}
profile
개발자 전직중..
post-custom-banner

0개의 댓글