추천, 2025

에디터의 선택

Java에서의 Throw와 Throw의 차이점

throw 및 throw는 예외 처리에 사용되는 키워드입니다. throw 키워드는 프로그래머가 작성한 예외 인스턴스를 JVM에 수동으로 전달하는 데 사용됩니다. 메소드에서 발생 된 예외 처리 책임을 호출자 메소드로 전달하는 데 사용되는 throws 키워드. throw와 throw의 기본적인 차이점은 throw 키워드가 예외 객체를 사용하는 반면 throws 키워드는 예외 클래스의 이름을 사용한다는 것입니다.

비교 차트

비교의 기초던지다던지다
기본throw 키워드는 생성 된 예외 객체를 JVM에 수동으로 전달합니다.throws 키워드는 예외 처리의 책임을 메서드 호출자에게 위임하는 데 사용됩니다.
통사론throw Throwable-instance;return_type method_name (매개 변수 목록) ExceptionClass_list를 throw합니다.
{
// 메소드 본문
}
뒤따라throw 키워드 다음에 예외 객체가옵니다.throws 키워드 다음에는 메소드에서 발생할 수있는 예외 클래스 목록이옵니다.
throw 된 예외 수throw 키워드는 단일 예외 인스턴스를 throw 할 수 있습니다.throws 키워드는 여러 예외 클래스를 쉼표로 구분하여 선언 할 수 있습니다.

던짐의 정의

키워드 " throw "는 생성 된 예외 인스턴스를 JVM (Java Virtual Machine)에 수동으로 넘기는 데 사용됩니다. 예외 인스턴스를 throw하는 데 "throw"를 사용하지 않고 예외가 발생하면 런타임 시스템에서 내부적으로 예외 인스턴스를 JVM에 던지고 프로그램이 비정상적으로 종료됩니다. throw 키워드의 일반적인 형식은 다음과 같습니다.

 Throwable_instance를 던지십시오. 

Throwable_instance 위는 Throwable 클래스의 객체 여야합니다. int, float 또는 char과 같은 기본 유형과 throw 가능하지 않은 클래스 인스턴스는 throw 키워드를 사용하여 Throw 할 수 없습니다.

키워드 throw를 이해하는 예제를 보겠습니다.

 클래스 테스트 {public static void main (String [] args) {throw new ArithmeticException ( "/ 제로에 의해"); }} 

위의 코드에서 throw 키워드는 Exception 클래스 "ArithmeticException"의 인스턴스를 throw합니다. throw 키워드가 사용되지 않았다면, main () 메소드는 내부적으로 JVM에 전달 된 예외 객체를 내부적으로 생성했을 것이다.

키워드 던지기에 관하여 기억할 점 :

  • 예외 오브젝트를 수동으로 JVM에 전달합니다.
  • 사용자 정의 예외 또는 사용자 정의 예외에 가장 잘 사용됩니다.
  • 메모리가 throw 키워드에 의해 던져진 예외 객체에 할당되지 않으면 런타임 예외 NullPointerException이 발생합니다.
  • throw 키워드는 발생 직후에 프로그램의 실행을 중지합니다. 우리는 throw 문 다음에 어떤 명령문도 직접 작성할 수 없습니다. throw 문 다음에 스테이먼트를 직접 작성하면 컴파일러는 컴파일 중 오류가 발생하여 연결할 수없는 문을 표시합니다.
  • throw 키워드를 사용하여 Throwable 클래스의 객체 만 throw 할 수 있습니다. Throwable 객체가 Throwable 클래스의 객체가 아닌 경우 컴파일 타임 오류 "Incompatible type found. . 필요한 java.lang.Throwable "

노트 :

throw 키워드는 C ++, JAVA, C #에서 수동으로 예외를 throw하는 데 사용됩니다.

던지기의 정의

" throws "키워드는 메서드에서 발생한 예외 처리 책임을 호출자 메서드에 위임하는 데 사용됩니다. 호출자 메서드는 다른 메서드 또는 JVM 일 수있는 예외 처리를 담당합니다. 메서드에서 발생할 수있는 예외 클래스 목록을 선언합니다.

throws 키워드를 사용하면 메서드에서 발생한 예외가 호출자 메서드에 의해 처리되므로 컴파일 오류가 발생하지 않는다는 것을 컴파일러에서 알 수 있습니다. 그러나 호출자 메서드는 예외를 처리하거나 계층 구조 메서드에 예외를 처리 할 책임을 위임해야합니다. 런타임 예외가 발생하면 throws 키워드를 사용한 후에도 프로그램의 비정상적인 종료를 막지 못합니다. 호출 메소드가 main () 인 경우, 디폴트로 JVM이 예외를 처리합니다.

throws 키워드의 일반적인 형식은 다음과 같습니다.

 return_type method_name (매개 변수 목록) throws exceptionClass_list {// 본문 본문} 

throws 키워드는 메소드의 서명 뒤에 나타나며 메소드에 발생할 수있는 예외 클래스 목록을 포함 할 수 있습니다. 키워드 throw 후에 작성된 예외 클래스 목록은 쉼표로 구분됩니다.

throws 키워드를 이해하는 한 가지 예를 들어 보겠습니다.

 calss 테스트 {public static void main (String [] args) throws InterruptedException {thread sleep (10000); }} 

위 코드에서 sleep () 메서드를 사용하여 주 스레드를 잠자기 상태로 만듭니다. 이제 주 방법이 절전 상태 일 때 다른 스레드가 주 스레드를 인터럽트 할 수 있습니다. 그러나 throws 키워드는 main () 메서드의 서명 이후에 사용되므로 프로그램이 쉽게 컴파일됩니다. throws 키워드는 확인 된 예외 클래스 인 InterruptedException을 선언합니다. 이제 다른 스레드가 런타임 중에 주 스레드를 인터럽트하면 throws 키워드는 JVM 인 main () 메서드의 호출자에게 해당 예외를 넘겨줍니다. JVM은 프로그램을 비정상적으로 종료시킵니다.

기억할 포인트는 다음과 같습니다.

  • throws 키워드는 확인 된 예외 클래스를 선언하는 데에만 사용됩니다. 검사되지 않은 예외에 대한 throws 키워드의 사용은 아무런 영향을 미치지 않습니다.
  • 메서드가 독자적으로 예외를 처리하고 싶지 않은 경우, throws 키워드를 사용하여 해당 예외를 해당 클래스의 호출자 메서드에 위임합니다.
  • 그 사용법은 프로그램의 원활한 컴파일 만 허용합니다.
  • 런타임에 예외가 발생하면 throws 키워드를 사용한 후에도 프로그램이 비정상적으로 종료됩니다.
  • 런타임시 예외가 발생하면 프로그램의 정상 종료를 위해 try / catch 블록을 사용하는 것이 좋습니다.

노트 :

키워드 throw는 Java에서만 사용됩니다. C ++과 C #은 throws 키워드를 사용하지 않습니다.

던지기와 던지기의 주요 차이점

  1. 키워드 throw는 예외 처리의 책임을 수동으로 JVM에 넘겨주는 반면, 키워드는 예외가 발생한 코드의 호출자 메소드에 예외 처리의 책임을 전가합니다.
  2. throw 키워드 뒤에는 JVM으로 넘겨주는 예외 객체가옵니다. 한편, throws 키워드 뒤에는 메소드에서 발생할 수있는 예외 클래스가옵니다.
  3. throw 키워드는 한 번에 하나의 예외 객체를 던질 수 있지만 throws 키워드는 한 번에 쉼표로 구분 된 여러 예외 클래스를 선언 할 수 있습니다.

결론:

throw 키워드는 사용자 정의 된 예외에 가장 잘 사용됩니다. try / catch 블록은 comparison throw 키워드로 예외를 처리하는 데 가장 좋습니다.

Top