异常类定义

ExceptionNullpointerException类一样打开子类,它有构造函数,没有其他方法。JVM 如何知道要显示此类异常的情况?


aluckdog
浏览 141回答 1
1回答

一只斗牛犬

JVM 会在特定情况下自动抛出一些异常。NullPointerException 或 OutOfMemoryError 就在其中。因为 sun/oracle 已经定义了它们的确切用途,何时抛出它们的逻辑被编码到 JVM 本身中。(例如,如果您的应用程序需要的内存超过可用内存,JVM 知道它必须抛出 OutOfMemoryError;如果您尝试访问 null 对象的字段或方法,它知道它必须抛出 NullPoinerException)。这些规则在 JVM 中被明确指定和编码。在这种情况下,它们不同于您为自己使用而创建的任何“自定义”异常。显然,JVM 不知道它们的语义并且永远不会自动抛出它们。相反,你必须自己扔掉它们。顺便说一句:如果您想知道,为什么您不需要 NullPointerException 的 try/catch 块:这是因为它们继承自 RuntimeException。根据定义,从 RuntimeException 继承的任何异常都不需要声明或明确捕获。(您可以明确声明和捕获它们,但这是可选的)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java