정의
try-catch문 : 프로그램 실행 중 발생할 수 있는 예외 상황을 처리하기 위한 구문
장점
- 안정성 향상 : 예외 발생 시 프로그램의 비정상 종료가 되지 않아 대처 가능
- 디버깅 용이 : 문제 발생 지점 추적 가능
- 사용자 경험 개선 : 오류 발생 시, 사용자에게 안내를 제공
구조
try {
// 예외가 발생할 수 있는 코드
} catch (ExceptionType1 e1) {
// ExceptionType1 타입을 제외한 다른 타입의 예외를 처리하는 코드
} catch (ExceptionType2 e2) {
// ExceptionType2 타입을 제외한 다른 타입의 예외를 처리하는 코드
}
- try 블록 : 예외 발생 가능성이 있는 코드 작성.
- 예외 발생시, 해당 예외를 처리할 수 있는 catch블록으로 전달
- 예외 미발생시, catch블록은 넘기고 try블록의 코드 실행
- catch 블록 : 예외가 발생했을 때 실행되는 코드 작성
- ExceptionType1, 2는 예외 타입을 의미.
*예외 타입으로는 IOException, NullPointerException, ArrayIndexOutOfBoundsException 등이 있다.
* 예외 처리의가장 상위에 있는 클래스 Exception을 사용하면 특정 예외 타입을 지정하지 않아도 한 번에 모든 종류의 예외 처리 가능. (개별적인 예외 처리 권장) - 여러 개의 catch 블록 사용 가능
- ExceptionType1, 2는 예외 타입을 의미.
예시 코드
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class MultipleExceptionExample {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.print("숫자를 입력하세요: ");
//Integer.parseInt : 문자열을 정수로 변환하는 메서드
int number = Integer.parseInt(scanner.nextLine()); // NumberFormatException 가능
File file = new File("somefile.txt");
Scanner fileScanner = new Scanner(file); // FileNotFoundException 가능
}
//숫자가 아닌 문자열 입력시 발생되는 오류가 있을 경우 실행되는 catch문
catch (NumberFormatException e) {
System.out.println("잘못된 숫자 형식입니다.");
}
//파일을 찾지 못했을 때 실행되는 catch문
catch (FileNotFoundException e) {
System.out.println("파일을 찾을 수 없습니다.");
}
}
}
주의사항
- 과도한 사용 시 가독성이 떨어지고 성능 저하 가능성이 생긴다.
- 구체적인 예외 타입을 명시해 처리하여 예상하지 못한 버그 발생 예방
'Language > JAVA' 카테고리의 다른 글
[Java] 쇼트 서킷 (Short-Circuit) (1) | 2024.09.27 |
---|---|
[Java] var 예약어 (0) | 2024.09.27 |
[JAVA] BufferedReader (0) | 2024.09.14 |
[JAVA] throws IOException (0) | 2024.09.13 |
[JAVA] 캐스팅 (Casting) (0) | 2024.09.01 |