확실히 알고가자 예외처리!!!

buffet_psi·2023년 2월 28일
post-thumbnail

예외?(Exception)

자바에서 실행 중 발생하는 예기치 않은 상황으로, 프로그램 실행을 중단 시킬 수 있습니다.
How to fix? try-catch문을 사용해서!

  • try-catch문 구조
try {
    // 예외 발생 가능성이 있는 코드
} catch (예외 타입1 예외 변수1) {
    // 예외 처리 코드
} catch (예외 타입2 예외 변수2) {
    // 예외 처리 코드
} finally {
    // 항상 실행되는 코드 (생략 가능)
}

try블록 내에서 예외가 발생하면 예외타입이 있는 catch블록에서 예외처리코드가 실행됩니다! finally블록은 예외 상관없이 항상 실행됩니다. finally블록은 생략가능합니다.

  • 좀 더 쉬운 예시
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("물건의 가격을 입력하세요: ");
        try {
            int price = scanner.nextInt();
            if (price < 0) {
                throw new IllegalArgumentException("가격은 음수가 될 수 없습니다.");
            }
            System.out.println("구매 가능합니다.");
        } catch (IllegalArgumentException e) {
            System.out.println("오류: " + e.getMessage());
        } catch (Exception e) {
            System.out.println("오류: 잘못된 입력입니다.");
        }
    }
}

위코드에서 try-catch문은
1. try 블록 안에 있는 것을 먼저 실행시킵니다.
2. if 문에서 price < 0 인지 아닌지 걸러내게 됩니다.
(price가 -10000 이게 되면 IllegalArgumentException 예외가 발생하여 catch 한 뒤 System.out.println("오류: " + e.getMessage()); 메시지가 출력될 거예요)
(다른 예외 일 경우에는 catch (Exception e) 여기 코드가 실행돼서
System.out.println("오류: 잘못된 입력입니다.");이 뜰 거예요 예를 들어 int라서 숫자를 입력해야 하는데 문자를 입력했거나, int형의 범위를 넘어섰을 때 표에 범위대로 만약 가격을 int형의 범위보다 1벗어난 2147483648이라고 쳐도 잡아낼거에요!!

profile
노력과효율!

0개의 댓글