Java에서 예외 처리는 프로그램 실행 중 발생할 수 있는 오류를 처리하기 위한 중요한 메커니즘입니다. 이를 통해 프로그램의 안정성을 높이고, 예기치 못한 상황에서도 정상적으로 작동하도록 만들 수 있습니다. 이번 글에서는 try, catch, throw 키워드를 사용하여 Java에서 예외를 처리하는 방법과 그 원리를 알아 보겠습니다.
1. 예외(Exception)란?
예외란 프로그램 실행 중 예기치 않은 상황이나 오류가 발생했을 때 이를 나타내는 객체입니다. 예외는 크게 두 가지로 나뉩니다
IOException
, SQLException
NullPointerException
, ArrayIndexOutOfBoundsException
2. 예외 처리 기본 구조
Java에서 예외 처리는 주로 try
, catch
, finally
, throw
, throws
키워드를 사용하여 이루어집니다.
기본 구조
try {
// 예외가 발생할 가능성이 있는 코드
} catch (ExceptionType e) {
// 예외가 발생했을 때 처리할 코드
} finally {
// (선택적) 항상 실행되는 코드
}
3. 예외 처리 예제
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)
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
예제:
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세 이상이어야 합니다.
예제
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. 예외 처리의 장점
결론
Java에서의 예외 처리는 안정적이고 유지보수 가능한 프로그램을 개발하는 데 필수적인 요소입니다. try
, catch
, throw
와 같은 키워드를 적절히 활용하여 예외를 처리하고, 예외 상황에서도 프로그램이 정상적으로 작동할 수 있도록 설계해 보세요. 예외 처리를 통해 코드의 품질을 한 단계 업그레이드가 될 수 있습니다.
다음시간에는 Java 컬렉션 프레임워크 완벽 가이드: List, Set, Map의 차이점에 대해 알아 보겠습니다. 감사합니다.
일상에서 벗어나 진정한 휴식을 꿈꾼다면, 일본 하코네 온천 료칸만큼 매력적인 여행지도 드물 것입니다. 하지만 검색만…
디즈니랜드 여행을 앞두고 가장 중요한 고민 중 하나는 바로 “숙소 선택”입니다. 꿈같은 하루를 선물하고 싶은…
스이카 카드 발급 해야하는 이유 "도쿄 지하철 정복은 스이카 카드 없으면 절대 불가능합니다!" "이 카드…
리버 크루즈를 타야만 하는 이유 "오사카 여행에서 낮에는 활기찬 거리, 밤에는 화려한 네온사인으로 물든 도시를…
오사카 여행에 필수적인 교통패스인 오사카 교통패스에 대해 소개 하겠습니다. 일본 오사카 여행을 준비 중이시라면, 효율적인…
후쿠오카는 일본 여행지 중에서도 근교 여행지와 맛집, 쇼핑, 자연 풍경, 도시를 한 번에 즐길 수…