자바에서 예외 처리는 프로그램의 오류를 관리하고 안정성을 유지하는 데 필수적인 기능입니다. 예외 처리를 적절히 사용하면 프로그램이 예기치 않은 상황에서도 계속해서 실행될 수 있도록 할 수 있습니다. 이번 포스트에서는 자바에서 자주 사용하는 예외 처리 기법 5가지와 그 예제를 소개하겠습니다.
1. NullPointerException
설명: NullPointerException은 객체가 null일 때 객체의 메서드나 필드에 접근하려고 할 때 발생합니다. 이는 코드에서 참조가 잘못된 경우 발생할 수 있습니다.
예제 코드:
public class NullPointerExample {
public static void main(String[] args) {
String str = null;
try {
// str이 null이므로 예외가 발생합니다.
int length = str.length();
} catch (NullPointerException e) {
System.out.println("NullPointerException 발생: 객체가 null입니다.");
}
}
} // 출력 : NullPointerException 발생: 객체가 null입니다.
설명: 위 코드에서는 str 변수가 null로 초기화되어 있기 때문에 str.length()를 호출하면 NullPointerException이 발생합니다. try-catch 블록을 사용하여 예외를 처리하고 사용자에게 적절한 메시지를 출력합니다.
2. ArrayIndexOutOfBoundsException
설명: ArrayIndexOutOfBoundsException은 배열의 유효한 인덱스 범위를 벗어난 인덱스에 접근하려고 할 때 발생합니다.
예제 코드:
public class ArrayIndexExample {
public static void main(String[] args) {
int[] array = {1, 2, 3};
try {
// 배열의 범위를 벗어난 인덱스에 접근합니다.
int value = array[5];
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("ArrayIndexOutOfBoundsException 발생: 배열의 범위를 벗어난 인덱스입니다.");
}
}
}// 출력 : ArrayIndexOutOfBoundsException 발생: 배열의 범위를 벗어난 인덱스입니다.
설명: 위 코드에서는 배열의 인덱스 5에 접근하려고 하지만 배열의 길이는 3이므로 ArrayIndexOutOfBoundsException이 발생합니다. try-catch 블록으로 예외를 처리하여 오류 메시지를 출력합니다.
3. NumberFormatException
설명: NumberFormatException은 문자열을 숫자로 변환할 때 형식이 올바르지 않은 경우 발생합니다.
예제 코드:
public class NumberFormatExample {
public static void main(String[] args) {
String numberStr = "abc";
try {
// 문자열을 정수로 변환하려고 시도합니다.
int number = Integer.parseInt(numberStr);
} catch (NumberFormatException e) {
System.out.println("NumberFormatException 발생: 문자열을 숫자로 변환할 수 없습니다.");
}
}
} // 출력 : NumberFormatException 발생: 문자열을 숫자로 변환할 수 없습니다.
설명: 위 코드에서는 "abc"라는 문자열을 정수로 변환하려고 시도하지만, 문자열 형식이 숫자가 아니기 때문에 NumberFormatException이 발생합니다. try-catch 블록을 사용하여 예외를 처리합니다.
4. IOException
설명: IOException은 입출력 작업 중에 오류가 발생할 때 발생합니다. 파일을 읽거나 쓸 때 주로 발생합니다.
예제 코드:
import java.io.FileReader;
import java.io.IOException;
public class IOExceptionExample {
public static void main(String[] args) {
try {
FileReader file = new FileReader("nonexistentfile.txt");
} catch (IOException e) {
System.out.println("IOException 발생: 파일을 찾을 수 없습니다.");
}
}
} // 출력 : IOException 발생: 파일을 찾을 수 없습니다.
설명: 위 코드에서는 존재하지 않는 파일을 열려고 시도하기 때문에 IOException이 발생합니다. try-catch 블록을 사용하여 예외를 처리하고 사용자에게 파일이 존재하지 않는다는 메시지를 출력합니다.
5. ArithmeticException
설명: ArithmeticException은 수학 연산 중 오류가 발생할 때 발생합니다. 주로 0으로 나누려고 할 때 발생합니다.
예제 코드:
public class ArithmeticExceptionExample {
public static void main(String[] args) {
int a = 10;
int b = 0;
try {
// 0으로 나누기 시도
int result = a / b;
} catch (ArithmeticException e) {
System.out.println("ArithmeticException 발생: 0으로 나눌 수 없습니다.");
}
}
} // 출력 : ArithmeticException 발생: 0으로 나눌 수 없습니다.
설명: 위 코드에서는 b가 0이기 때문에 a / b에서 ArithmeticException이 발생합니다. try-catch 블록을 사용하여 예외를 처리하고 사용자에게 0으로 나눌 수 없다는 메시지를 출력합니다.
'ERRORHiSTORY' 카테고리의 다른 글
JWT 인증과 권한 처리 중 403 Forbidden 오류 해결 사례 (0) | 2024.09.11 |
---|