던지기와 던지기의 차이점은 무엇입니까? 자바에서 던진다

게시 됨: 2013-07-23

던지기와 던지기의 차이점은 무엇입니까? 자바에서 던진다

하나는 선언하고 다른 하나는 수행

Java의 예외 처리와 관련된 다섯 가지 키워드(예: try, catch, finally, throw 및 throws)가 있습니다. final, finally 및 finalize 의 차이점 외에도 throw 대 throw는 자주 묻는 Java 인터뷰 질문 중 하나입니다.

  • throw 키워드 는 Java의 모든 메서드 또는 정적 블록에서 예외를 throw하는 데 사용되는 반면 throws 키워드 는 메서드 선언에 사용되며 이 메서드에서 어떤 예외를 throw할 수 있는지 표시합니다. 그것들은 교환할 수 없습니다.
  • 아래 예제와 같이 메서드가 확인된 예외를 throw하는 경우 호출자는 이 예외를 catch하여 처리하거나 메서드 선언에서 다른 throws 절을 선언하여 다시 throw할 수 있습니다.
  • throw 절은 호출 메서드에 특정 예외를 throw해야 한다고 생각되는 코드의 모든 부분에서 사용할 수 있습니다.

과소평가된 자바 예외:

메서드가 예외를 throw하는 경우 catch 블록으로 둘러싸거나 해당 메서드의 서명에 throw 절이 있어야 합니다. 서명에 throw 절이 없으면 Java JVM 컴파일러는 예외를 처리할 방법을 모릅니다. throws 절은 이 특정 예외가 호출 메서드에 의해 처리될 것임을 컴파일러에 알립니다.

다음은 Java에서 Throw, Throws, Try, Catch, finally 블록의 동작을 설명하는 매우 간단한 예입니다.

결과:

널 포인터 예외 - Crunchify

이제 45번과 46번 줄을 아래 줄로 바꾸면 아래 결과가 표시됩니다.

새 결과:

관심이 있을 수 있는 모든 Java 자습서 목록입니다.

예외에 대한 보너스 팁:

  • 예외가 발생하면 정상적인 프로그램 실행이 즉시 분기됩니다.
  • 확인된 예외를 포착하거나 전달해야 합니다. 이것은 try ... catch 문에서 수행하거나 메서드 정의에서 예외를 정의하여 수행할 수 있습니다.
  • 예외는 연관된 예외 클래스가 throw된 예외의 클래스 또는 수퍼클래스와 일치하는 첫 번째 catch 블록에 의해 catch됩니다.
  • 예외 체인에 일치하는 catch 블록이 없으면 throw된 예외를 포함하는 스레드가 종료됩니다.
  • try ... catch 문 이후의 finally 블록은 예외의 catch 여부에 관계없이 실행됩니다.
  • finally 블록 내에서 반환하면 포착되지 않은 예외의 경우에도 호출자에 대한 예외 체인이 끊어집니다.