최코딩의 개발

일곱번 째, 예외처리란? 본문

JAVA

일곱번 째, 예외처리란?

seung_ho_choi.s 2022. 12. 19. 22:47
728x90

개요: 필자가 예외처리 내용을 공부하기 위해 쓴 게시물이다. 

 

위 개념을 알아보기 위해서는 먼저 오류(error)와 예외(exception)가 있다. 

 

오류(error) - 시스템 레벨에서 프로그램에 심각한 문제를 야기하여 실행중인 프로그램을 종료시키는 것으로 

개발자가 미리 예측하여 처리할 수 없는것이 대부분이므로 막지를 못한다. 

 

예외(exception) - 오류와 마찬가지로 실행중인 프로그램을 종료시키지만 개발자가 미리 예측하여 처리할 수 있다. 따라서 개발자는 이것을 이용해 코드의 흐름을 바꿀 수 있다. 

<자료1>

예외처리 구문에는 try. catch. finally 구문이 있다. 

 

try. catch. finally

간단하게 배열을 엮어 정리한 코드이다. 

package exception;

public class ArrayExceptionTest {
    public static void main(String[] args) {

        int[] arr = {1, 2, 3, 4, 5};
        try { // 예외를 처리하길 원하는 실행 코드 
            for (int i = 0; i <= 4  ; i++) {
                System.out.println(arr[i]);
            }
        } catch (ArrayIndexOutOfBoundsException e){//e
            System.out.println(e); //e 예외가 발생할 경우 실행 될 코드 
            return; //finally 구문다음에 return이 출력 end는 출력안됨
        } finally {//try가 수행되면 무조건 수행됨 , 맨마직막에 정리하는 구문
            System.out.println("finally");
        }
        System.out.println("end");
    }
}

 

실행결과

다음과 같다.

 

Throw. Throws 

 

throw - 강제로 예외발생시키기 

throws - 예외를 회피하기

package exception;

public class IDFormatException extends Exception {
    IDFormatException(String message) {
        super(message);
    }
}

 

package exception;

public class IDFormatTest {
    String userId;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId)throws IDFormatException{ //예외를 회피함으로써 main으로 미룸 
        if(userId==null){
            throw new IDFormatException("아이디 널일수가 없어용"); //강제로 발생 
        }
        else if(userId.length()<8 || userId.length()>20){
            throw new IDFormatException("아이디 입력수 초과");
        }
        this.userId = userId;
    }

    public static void main(String[] args) {
        IDFormatTest a= new IDFormatTest();
        String name="chltmdgh522";
        try{
            a.setUserId(name);
        }catch(IDFormatException e){
            System.out.println(e);
        }
        System.out.println("end");
    }
}

 

예외클래스 종류

https://blog.naver.com/cjy2103/222876252761

가장 흔하다고 하니 알아두자! 

 

 

 

느낀점: 장정 3일에 걸쳐 예외처리에 대해서 알아봤다. 솔직히 블로그에서는 내용이 적어보일지라도 나름 이해하고 걸리는데 시간이 꽤 걸렸다. 이 문법은 진짜 많이 쓰일거 같다. 열심히 복습해야지. 

 

 

728x90