簡體   English   中英

調用帶有檢查異常的方法

[英]call method with checked exception

據我所知,如果方法拋出異常 Java 編譯器會強制該方法的調用者捕獲該異常。

我看到parseInt拋出NumberFormatException

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);

那么為什么我可以在不捕獲異常的情況下調用它:

String str = "5";
int n = Integer.parseInt(str);

因為NumberFormatException擴展了RuntimeException - 運行時異常被認為是“未檢查的”,請參閱RuntimeExceptionJavadoc

RuntimeException 是在 Java 虛擬機正常運行期間可以拋出的那些異常的超類。

方法不需要在其 throws 子句中聲明任何可能在方法執行期間拋出但未被捕獲的 RuntimeException 子類。

這是Java 教程中的一篇文章,解釋了此功能的含義及其存在的原因

重要的區別是任何從運行時異常擴展的異常都不需要被捕獲,而任何其他異常都需要。 任何時候都可能拋出擴展 RuntimeException 的異常,比如 NullPointerException 或 ConcurrentModificationException,所以它們不能指望你去嘗試捕獲它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM