ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] Exception - 예외처리
    Java 2022. 5. 20. 10:15
    반응형

     

    프로그램이 실행중 얘기치 못한 상황을 예외라고 한다. 예외 상황을 미리 예측하고 처리할 수 있는데, 이렇게 하는 것을

    예외 처리라고 한다.

    public class ExceptionExam {
    	public static void main(String[] args) {
    		int i = 10;
        		int j = 0;
        		int k = i/j;
            
        	System.out.println(k);
    	}
    }

    위의 예제를보면 에러가 발생하게 된다. 5번째를 보면, i 나누기 j 를 하는데, 자바에서는 정수를 정수로 나눌때 0 으로 나누면

    오류가 발생한다. 이를 방지하기위해 예외처리를 하는데, j라는 변수에 0이 들어올지도 모르는 예외 상황을 미리 예측하고 

    처리 할 수 있다. 

     

     

    예외 처리하는 문법

    		try {
    			 ...
    		} catch(예외클래스 변수명) {
    			 ...
    		} finally {
            	 ...
                    }

    오류가 발생할 예상 부분을 try라는 블록으로 감싼 후, 발생할 오류와 관련된 Exception을 catch라는 블록에서 처리한다.

    오류가 발생했든 안했든 무조건 실행되는 finally라는 블록을 가질 수 있다.

    finally 블록은 생략이 가능 

     

     

    실행결과

    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("오류가 발생하든 안하든 무조건 실행되는 블록입니다.");
                }
            }
        }

    0으로 나눌 수 없다. java.lang.ArithmeticException: / by zero

    오류가 발생하든 안하든 무조건 실행되는 블록이다. Exception처리 하지 않았을 때는 프로그램이 강제 종료되었는데 catch라는 블록으로 Exception을 

    처리하니 강제종료되지 않고 잘 실행되는 것을 알 수 있다. 

    Exception클래스들은 모두 Exception클래스를 상속받으므로, 예외클래스에 Exception을 두게 되면 어떤 오류가 발생하든지 간에

    하나의 catch블록에서 모든 오류를 처리 할 수있다. 

    반응형

    댓글

Designed by Tistory.