예외 생성하기

이영광·2022년 2월 7일

자바

목록 보기
8/34

코딩을 하다 보면 자신만의 예외 상황을 만들고 처리해야 하는 경우가 있는데, 예외를 만들 떄는 throw 구문을 사용합니다.

package exceptiontest.exceptioncreate;

class MyException extends Exception{
    int x;
    MyException(int x){
        this.x = x;
    }
    public String toString(){
        return " I am " + x + "in MyException class";
    }
}


public class Test1 {

    public static void main(String[] args){
        MyException me = new MyException(10);
        try{
            System.out.println("before thow MyException");
            throw me; //예외 발생
        }catch(MyException e){
            System.out.println(e);
        }
        System.out.println("main ends");
    }
    
}

before thow MyException
 I am 10in MyException class
main ends

MyException 클래스는 Exception 클래스를 상속받고 있는데, 이렇게 하면 MyException 객체는 예외 객체가 되며, 이 객체를 throw 키워드를 이용해서 예욀르 발생시키도록 하는것, 그리고 throw me; 와 같이 예외를 발생시킨 부분을 try~catch를 이용하여 예외를 처리하도록 해야함
(예외 클래스를 상속받은 객체를 (throw 인스턴스) 로 예외 발생처리 함)

잘못 적은 문법 떄문에 발생하는 컴파일 에러는 반드시 코드 자체를 수정해야 하지만 프로그램이 수행되는 과정에는 어쩔 수 없이 발생하는 에러는 예외로 특별처리 해야한다. 이러한 예외 처리 방법으로는 try~catch 만을 이용하는 방법과 throw를 이용하여 예외 처리를 다른 메소드에게 넘기는 방법이있다.

예외명의미
ArrayIndexOutOfBoundsException배열 범위를 벗어남
ArithmeticException연산에 문제가있음(ex 0으로 나누기)
FileNotFoundException존재하지 않는 파일에 접근하기
NullPointerException인스턴스를 제대로 생성하지 않음
ClassNotFoundException존재하지 않는 클래스
NumberFormatException문자열ㅇ르 수치로 전환할 때 발생
profile
《REACT》《JAVASCRIPT 》 만지고있어욤

0개의 댓글