投擲與投擲有什麼區別。 拋出 Java

已發表: 2013-07-23

投擲與投擲有什麼區別。拋出 Java

一個聲明,另一個做

Java 中有五個與異常處理相關的關鍵字,例如try、catch、finally、throw 和 throws 。 除了final、finally 和 finalize之間的區別之外, throw 與 throws 是 Java 面試中經常被問到的問題之一。

  • throw 關鍵字用於從 Java 中的任何方法或靜態塊中拋出異常,而throws 關鍵字用於方法聲明,表示該方法可能拋出的異常。 它們不可互換。
  • 如果任何方法拋出如下示例所示的已檢查異常,則調用者可以通過捕獲它來處理此異常,也可以通過在方法聲明中聲明另一個 throws 子句來重新拋出它。
  • Throw 子句可用於您認為需要向調用方法拋出特定異常的任何代碼部分。

了解 Java 異常:

如果一個方法拋出異常,它應該被一個 try catch 塊包圍以捕獲它,或者該方法應該在其簽名中包含 throws 子句。 如果簽名中沒有 throws 子句,Java JVM 編譯器不知道如何處理異常。 throws 子句告訴編譯器這個特定的異常將由調用方法處理。

下面是一個非常簡單的示例,它解釋了 Java 中 Throw、Throws、Try、Catch、Finally 塊的行為。

結果:

空指針異常 - Crunchify

現在只需將第 45 行和第 46 行替換為以下行即可查看以下結果:

新結果:

您可能感興趣的所有 Java 教程的列表。

關於例外的額外提示:

  • 當拋出異常時,正常的程序執行會立即分支。
  • 必須捕獲或轉發已檢查的異常。 這可以在try ... catch語句中或通過在方法定義中定義異常來完成。
  • 異常由關聯異常類與拋出異常的類或超類匹配的第一個catch塊捕獲。
  • 如果在異常鏈中沒有找到匹配的catch塊,則終止包含拋出異常的線程。
  • 無論是否捕獲到異常,都會執行try ... catch語句之後的finally塊。
  • 即使對於未捕獲的異常,在finally塊內返回也會中斷調用者的異常鏈。