JAVA :: 예외처리

PATRIC·2024년 4월 11일

JAVA

목록 보기
3/3
post-thumbnail

프로그램을 만들다 보면 수없이 많은 예외 상황이 발생한다. 물론 예외가 발생하는 것은 프로그램이 오동작을 하지 않게 하기 위한 자바의 배려이다. 하지만 이러한 예외 상황을 무시하고 싶을 때도 있고, 적절한 처리를 하고 싶을 때도 있다. 예외 처리 방법을 알게 되면 보다 안전하고 유연한 프로그래밍을 구사할 수 있다.

예외 처리를 사용함으로서 안정적인 실행을 할 수 있다. 프로그램이 중단되지 않고 계속 실행될 수 있게 하며 적절한 메시지를 제공하여 사용자, 개발자가 문제를 파악하고 대처할 수 있기에 필수적이다.!

예외처리 활용


예외 처리의 기본 구조

자바에서 예외 처리는 주로 try-catch-finally 블록을 사용하여 구현됨

  • try 블록: 예외가 발생할 수 있는 코드를 포함합니다.
  • catch 블록: try 블록에서 발생한 예외를 처리합니다.
  • finally 블록 (선택적): 예외 발생 여부와 관계없이 실행되는 코드를 포함합니
		int [] arr = {1,2,3};

        try{
            System.out.println(arr[3]);
        } catch(ArrayIndexOutOfBoundsException e){
        // ArrayIndexOutOfBoundsException는 타입이고 e는 변수명임
            System.out.println(arr[0]);
        }

        System.out.println("예외 처리 성공");

배열을 이용하면 존재하지 않은 배열의 인덱스를 호출할 경우 에러갈 발생하여 프로그램이 꺼지게 되는데, try catch를 이용하여 예외처리를 할 경우 try 안에 있는 블록은 실행되지 않고 catch문을 실행시킨 뒤 프로그램이 꺼지지 않고 계속 실행 됨.

중복 에러처리

int [] arr = {1,2,3};

        try{
            int result = 10/0;
            System.out.println(arr[3]);

        } catch(ArrayIndexOutOfBoundsException e){
//            System.out.println(arr[0]);
            System.out.println(e.toString());
            System.out.println(e.getMessage());

        } catch (ArithmeticException e){
            System.out.println(e);
            
            // e는 toString이 오버라이딩 되어 있음
            System.out.println(e.toString());
            System.out.println(e.getMessage());
        }

        System.out.println("예외 처리 성공");

에러가 여러 개 있을 경우에는 catch문을 중복으로 작성할 수 있음

만약 에러 문구를 그대로 띄운 상태에서 코드를 실행시키려고 할 경우

 int [] arr = {1,2,3};

       try{
           int result = 10/0;
           System.out.println(arr[3]);
       } catch (Exception e){
           e.printStackTrace();
       }

       System.out.println("예외 처리 성공");


위 이미지 처럼 오류 메세지가 그대로 나온 뒤에 그 다음 코드를 실행됨을 볼 수 있음

0개의 댓글