throw는 예외를 명시적으로 던지는 데 사용됩니다. 예외를 직접 발생시키는 경우에 사용되며, try-catch 블록과는 다릅니다. try-catch는 예외를 처리하는 데 사용되고, throw는 예외를 발생시키는 데 사용됩니다.

throw의 사용 사례

  1. 특정 조건에서 예외를 명시적으로 던지기: 예를 들어, 프로그램 실행 중에 특정 조건이 만족되었을 때 예외를 발생시켜 오류를 알리고자 할 때 사용합니다.위 예제에서 age가 18 미만인 경우, IllegalArgumentException을 던져서 함수 호출자가 이를 처리하도록 합니다.
  2.  
    public void checkAge(int age) { if (age < 18) { throw new IllegalArgumentException("Age must be at least 18."); } System.out.println("Age is valid."); }
  3. 사용자 정의 예외 던지기: 특정 로직에서 정의된 예외를 던지기 위해 throw를 사용할 수 있습니다. 예를 들어, 자신의 애플리케이션에서 발생할 수 있는 예외를 정의하고 이를 던질 수 있습니다.
  4.  
    public class InsufficientFundsException extends Exception { public InsufficientFundsException(String message) { super(message); } } public void withdraw(double amount) throws InsufficientFundsException { if (amount > balance) { throw new InsufficientFundsException("Insufficient funds for withdrawal."); } balance -= amount; }
  5. 조건에 따른 예외를 의도적으로 발생시키기: 프로그램의 특정 상태나 조건에서 예외를 발생시켜, 이를 처리하도록 유도할 수 있습니다.
  6.  
    public void processOrder(Order order) { if (order == null) { throw new NullPointerException("Order cannot be null."); } // 나머지 로직 처리 }

throw와 throws의 차이점

  • throw는 예외를 던질 때 사용됩니다.
  • throws는 메서드 시그니처에 예외가 발생할 수 있음을 명시할 때 사용됩니다. 즉, throw와는 다르게 예외를 던진다는 것을 알리는 역할을 합니다.(?????)
 
public void someMethod() throws IOException { // 예외가 발생할 수 있음을 알림 throw new IOException("파일 읽기 오류"); }

따라서, throw는 예외를 실제로 던지는 데 사용되고, throws는 해당 메서드에서 예외가 발생할 수 있음을 호출자에게 알리는 역할을 합니다.

+ Recent posts