의문점 공부하기/📌 Java

📌 throw와 throws의 차이가 있는걸까?

아리빠 2023. 8. 24. 13:57

throw:
"throw"는 프로그램 내에서 직접 예외를 발생시킬 때 사용되는 키워드
예외 상황이 발생한 경우, 직접 예외 객체를 생성하고 "throw" 키워드와 함께 해당 예외 객체를 던질 수 있다
이렇게 던진 예외는 해당 메소드 내에서 처리되어야 하는데, 메소드 내에서 예외를 처리하지 않으면, 호출한 곳으로 예외가 전파되어 호출자가 처리하게 된다


throws:
"throws"는 메소드 선언 시 예외가 발생할 수 있는 상황을 나타내는 키워드
메소드 선언 시 "throws" 키워드를 사용하여 해당 메소드에서 처리하지 않는 예외를 명시할 수 있다
이는 해당 메소드를 호출한 곳에서 해당 예외를 처리하도록 하는 역할을 하고, 해당 메소드를 호출할 때 예외가 발생할 수 있음을 알려줌

 

=> "throw"는 예외를 직접 발생시키는데 사용되며 예외 객체를 생성하고 던지고, "throws"는 메소드 선언 시 해당 메소드가 어떤 예외를 던질 수 있는지 명시하여, 해당 예외를 처리하는 책임을 메소드를 호출하는 곳에 떠넘기는 역할을 한다