Categories: 미분류

Java에서의 예외 처리: try, catch, throw 사용법에 대해 알아 보겠습니다.

Java에서 예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하기 위한 중요한 메커니즘입니다. 이를 통해 프로그램의 안정성을 높이고, 예기치 못한 상황에서도 정상적으로 작동하도록 만들 수 있습니다. 이번 글에서는 try, catch, throw 키워드를 사용하여 Java에서 예외를 처리하는 방법과 그 원리를 알아 보겠습니다.


1. 예외(Exception)란?

예외란 프로그램 실행 중 예기치 않은 상황이나 오류가 발생했을 때 이를 나타내는 객체입니다. 예외는 크게 두 가지로 나뉩니다

  1. Checked Exception
    • 컴파일 시점에 처리해야 하는 예외입니다.
    • 예: IOException, SQLException
  2. Unchecked Exception:
    • 런타임 시점에 발생하는 예외입니다.
    • 예: NullPointerException, ArrayIndexOutOfBoundsException

2. 예외 처리 기본 구조

Java에서 예외 처리는 주로 try, catch, finally, throw, throws 키워드를 사용하여 이루어집니다.

기본 구조

try {
    // 예외가 발생할 가능성이 있는 코드
} catch (ExceptionType e) {
    // 예외가 발생했을 때 처리할 코드
} finally {
    // (선택적) 항상 실행되는 코드
}

3. 예외 처리 예제

  1. 파일 읽기 예제
import java.io.*;

public class ExceptionExample {
    public static void main(String[] args) {
        try {
            FileReader reader = new FileReader("example.txt");
            BufferedReader br = new BufferedReader(reader);
            System.out.println(br.readLine());
            br.close();
        } catch (IOException e) {
            System.out.println("파일을 읽는 중 오류가 발생했습니다: " + e.getMessage());
        }
    }
}

출력: (파일이 없는 경우)

파일을 읽는 중 오류가 발생했습니다: example.txt (No such file or directory)
  1. ArithmeticException 처리
public class DivideByZeroExample {
    public static void main(String[] args) {
        try {
            int result = 10 / 0;
        } catch (ArithmeticException e) {
            System.out.println("0으로 나눌 수 없습니다: " + e.getMessage());
        }
    }
}

출력

0으로 나눌 수 없습니다: / by zero

4. throw와 throws

  1. throw 키워드
    • 특정 조건에서 예외를 강제로 발생시킬 때 사용합니다.

예제:

public class ThrowExample {
    public static void main(String[] args) {
        try {
            checkAge(15);
        } catch (IllegalArgumentException e) {
            System.out.println("예외 발생: " + e.getMessage());
        }
    }

    public static void checkAge(int age) {
        if (age < 18) {
            throw new IllegalArgumentException("나이는 18세 이상이어야 합니다.");
        }
    }
}

출력

예외 발생: 나이는 18세 이상이어야 합니다.
  1. throws 키워드
    • 메서드가 호출자에게 예외를 던질 수 있음을 명시합니다.

예제

import java.io.*;

public class ThrowsExample {
    public static void main(String[] args) throws IOException {
        readFile("example.txt");
    }

    public static void readFile(String fileName) throws IOException {
        FileReader reader = new FileReader(fileName);
        BufferedReader br = new BufferedReader(reader);
        System.out.println(br.readLine());
        br.close();
    }
}

5. finally 블록

finally 블록은 예외 발생 여부와 관계없이 항상 실행되는 코드 블록입니다. 주로 리소스를 해제하거나 정리하는 작업에 사용됩니다.

예제

public class FinallyExample {
    public static void main(String[] args) {
        try {
            int[] arr = {1, 2, 3};
            System.out.println(arr[5]);
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("배열 인덱스 초과: " + e.getMessage());
        } finally {
            System.out.println("예외 처리 종료.");
        }
    }
}

출력

배열 인덱스 초과: Index 5 out of bounds for length 3
예외 처리 종료.

6. 예외 처리의 장점

  1. 프로그램 안정성 증가
    • 예외 처리 없이 프로그램이 멈추는 것을 방지합니다.
  2. 문제의 원인 파악 용이
    • 적절한 예외 메시지를 제공하여 문제 해결에 도움을 줍니다.
  3. 코드 유지보수성 향상
    • 예외 처리를 통해 오류가 발생할 가능성이 있는 부분을 명확히 분리할 수 있습니다.

결론

Java에서의 예외 처리는 안정적이고 유지보수 가능한 프로그램을 개발하는 데 필수적인 요소입니다. try, catch, throw와 같은 키워드를 적절히 활용하여 예외를 처리하고, 예외 상황에서도 프로그램이 정상적으로 작동할 수 있도록 설계해 보세요. 예외 처리를 통해 코드의 품질을 한 단계 업그레이드가 될 수 있습니다.

다음시간에는 Java 컬렉션 프레임워크 완벽 가이드: List, Set, Map의 차이점에 대해 알아 보겠습니다. 감사합니다.

루루파파

Recent Posts

하코네 온천 료칸 고민 끝! 가성비·프리미엄 만족 BEST5 이용 후기 및 최저가 예약하기

일상에서 벗어나 진정한 휴식을 꿈꾼다면, 일본 하코네 온천 료칸만큼 매력적인 여행지도 드물 것입니다. 하지만 검색만…

2일 ago

도쿄 디즈니랜드 근처 가성비 호텔 TOP5 비교_실제 후기 분석 및 최저가 예

디즈니랜드 여행을 앞두고 가장 중요한 고민 중 하나는 바로 “숙소 선택”입니다. 꿈같은 하루를 선물하고 싶은…

4일 ago

초보자도 30분 안에 이해하는 도쿄 지하철 완벽 가이드 및 스이카 카드 구매방법

스이카 카드 발급 해야하는 이유 "도쿄 지하철 정복은 스이카 카드 없으면 절대 불가능합니다!" "이 카드…

1주 ago

오사카 원더 크루즈 vs 도톤보리 리버 크루즈 비교 및 오사카 교통패스 예약 방법

리버 크루즈를 타야만 하는 이유 "오사카 여행에서 낮에는 활기찬 거리, 밤에는 화려한 네온사인으로 물든 도시를…

2주 ago

일본 여행 오사카 필수 교통패스 6가지 및 할인혜택

오사카 여행에 필수적인 교통패스인 오사카 교통패스에 대해 소개 하겠습니다. 일본 오사카 여행을 준비 중이시라면, 효율적인…

2주 ago

후쿠오카 3박 4일 여행 가이드: 알찬 일정과 쇼핑 할인 쿠폰 받기

후쿠오카는 일본 여행지 중에서도 근교 여행지와 맛집, 쇼핑, 자연 풍경, 도시를 한 번에 즐길 수…

2주 ago