我Exception像NullpointerException類一樣打開子類,它有構造函數,沒有其他方法。JVM 如何知道要顯示此類異常的情況?
1 回答

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
JVM 會在特定情況下自動拋出一些異常。NullPointerException 或 OutOfMemoryError 就在其中。
因為 sun/oracle 已經定義了它們的確切用途,何時拋出它們的邏輯被編碼到 JVM 本身中。(例如,如果您的應用程序需要的內存超過可用內存,JVM 知道它必須拋出 OutOfMemoryError;如果您嘗試訪問 null 對象的字段或方法,它知道它必須拋出 NullPoinerException)。
這些規則在 JVM 中被明確指定和編碼。
在這種情況下,它們不同于您為自己使用而創建的任何“自定義”異常。顯然,JVM 不知道它們的語義并且永遠不會自動拋出它們。相反,你必須自己扔掉它們。
順便說一句:如果您想知道,為什么您不需要 NullPointerException 的 try/catch 塊:這是因為它們繼承自 RuntimeException。根據定義,從 RuntimeException 繼承的任何異常都不需要聲明或明確捕獲。(您可以明確聲明和捕獲它們,但這是可選的)
添加回答
舉報
0/150
提交
取消