반응형
프로그래밍을 하다 보면 예상치 못한 문제가 발생할 수 있습니다. 예를 들어, 0으로 나눌 때나 배열 범위를 벗어난 데이터에 접근할 때 오류가 발생할 수 있는데요. Java에서는 이러한 오류를 예외(Exception)라고 부릅니다.
이번 글에서는 Java의 예외 처리 방법과 그 중요성을 두 가지 예제를 통해 알아보겠습니다. 😊
1. 예외(Exception)란?
예외는 프로그램 실행 중 발생할 수 있는 문제를 뜻합니다. 예외가 발생하면 프로그램이 멈추고 오류 메시지를 출력하는데, 이를 방지하기 위해 Java는 예외 처리(Exception Handling)를 제공합니다.
2. 예외 처리의 기본 구조
Java에서 예외 처리는 try, catch, finally 블록을 사용합니다.
- try: 예외가 발생할 가능성이 있는 코드를 작성.
- catch: 발생한 예외를 잡아내고 처리.
- finally: 예외 발생 여부와 관계없이 항상 실행되는 블록(선택 사항).
try {
// 예외 발생 가능성 있는 코드
} catch (Exception e) {
// 예외 처리 코드
} finally {
// 항상 실행되는 코드 (선택 사항)
}
3. 예제 1: 0으로 나누기 예외 처리
문제 상황
사용자로부터 정수를 입력받아 100을 나누는 프로그램입니다.
만약 0을 입력하면 ArithmeticException이 발생합니다.
코드
import java.util.InputMismatchException;
import java.util.Scanner;
public class ArithmeticExceptionEx {
public static void main(String[] args) {
double result = 0;
int num;
Scanner scanner = new Scanner(System.in);
System.out.print("정수 입력: ");
try {
num = scanner.nextInt(); // 정수를 입력받음
result = 100 / num; // 입력받은 정수로 나누기
} catch (InputMismatchException e) {
System.err.println("정수를 입력해 주세요."); // 정수 외 입력 시 처리
} catch (ArithmeticException e) {
System.err.println("0으로는 나눌 수 없습니다."); // 0 입력 시 처리
} catch (Exception e) {
e.printStackTrace(); // 기타 예외 처리
} finally {
System.out.println("예외처리 종료.");
}
System.out.println("결과: " + result);
scanner.close();
}
}
실행 결과
정상 입력
정수 입력: 5
예외처리 종료.
결과: 20.0
0 입력
정수 입력: 0
0으로는 나눌 수 없습니다.
예외처리 종료.
결과: 0.0
잘못된 입력
정수 입력: Hello
정수를 입력해 주세요.
예외처리 종료.
결과: 0.0
설명
- InputMismatchException: 정수가 아닌 값을 입력했을 때 발생.
- ArithmeticException: 0으로 나누려고 할 때 발생.
- finally: 입력 값이 올바르든 아니든 항상 실행됩니다.
4. 예제 2: 배열 범위를 벗어난 접근
문제 상황
배열에서 존재하지 않는 인덱스의 데이터를 출력하려고 하면 ArrayIndexOutOfBoundsException이 발생합니다.
코드
public class ArrayExceptionEx {
public static void main(String[] args) {
int[] intArray = {3, 6, 9};
try {
System.out.println(intArray[3]); // 배열 범위를 벗어난 접근
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println("Error: " + e.getMessage()); // 예외 처리
} finally {
System.out.println("예외 처리 종료");
}
}
}
실행 결과
Error: Index 3 out of bounds for length 3
예외 처리 종료
설명
- ArrayIndexOutOfBoundsException: 배열의 길이를 벗어난 인덱스에 접근하려고 할 때 발생.
- 예외 발생 시 친절한 메시지를 출력하여 문제를 알립니다.
5. 예외 처리의 중요성
- 프로그램 중단 방지
예외 처리를 통해 프로그램이 예상치 못한 상황에서도 중단되지 않고 계속 실행될 수 있습니다. - 사용자 경험 개선
친절한 예외 메시지를 제공하면 사용자에게 문제를 명확히 전달할 수 있습니다. - 코드의 안전성 강화
예외 처리는 코드의 안정성을 높이고, 에러를 사전에 방지하는 데 도움을 줍니다.
6. 정리
Java에서 예외 처리는 프로그램의 안정성을 유지하는 데 필수적인 기술입니다.
- try, catch, finally 블록을 활용하여 예외를 처리할 수 있습니다.
- 다양한 예외 유형에 맞는 처리 방식을 적용해 사용자와 프로그램 모두에게 긍정적인 경험을 제공합니다.

반응형
'개발 > JAVA' 카테고리의 다른 글
JAVA의 함수형 프로그래밍과 Stream 활용하기 (7) | 2025.01.16 |
---|---|
Java 예외 처리: 기본부터 사용자 정의 예외까지 (8) | 2025.01.15 |
Java 제네릭(Generic): 타입을 유연하게 관리하는 방법 (24) | 2025.01.13 |
Java 컬렉션: 벡터(Vector) 배우기 (26) | 2025.01.10 |
Java 자료구조: 스택(Stack)과 큐(Queue) 배우기! (16) | 2025.01.09 |