Language/JAVA

[JAVA] catch-try문

굠민 2024. 9. 14. 14:54
정의

 

try-catch문 : 프로그램 실행 중 발생할 수 있는 예외 상황을 처리하기 위한 구문

 

장점
  • 안정성 향상 : 예외 발생 시 프로그램의 비정상 종료가 되지 않아 대처 가능
  • 디버깅 용이 : 문제 발생 지점 추적 가능
  • 사용자 경험 개선 : 오류 발생 시, 사용자에게 안내를 제공

 

구조

 

try {
    // 예외가 발생할 수 있는 코드
} catch (ExceptionType1 e1) {
    // ExceptionType1 타입을 제외한 다른 타입의 예외를 처리하는 코드
} catch (ExceptionType2 e2) {
    // ExceptionType2 타입을 제외한 다른 타입의 예외를 처리하는 코드
}

 

  • try 블록 : 예외 발생 가능성이 있는 코드 작성. 
    • 예외 발생시, 해당 예외를 처리할 수 있는 catch블록으로 전달
    • 예외 미발생시, catch블록은 넘기고 try블록의 코드 실행
  • catch 블록 : 예외가 발생했을 때 실행되는 코드 작성
    • ExceptionType1, 2는 예외 타입을 의미.
      *예외 타입으로는 IOException, NullPointerException, ArrayIndexOutOfBoundsException 등이 있다.
      * 예외 처리의가장 상위에 있는 클래스 Exception을 사용하면 특정 예외 타입을 지정하지 않아도 한 번에 모든 종류의 예외 처리 가능. (개별적인 예외 처리 권장)
    • 여러 개의 catch 블록 사용 가능

 

예시 코드
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