异常类定义

问题描述 投票:2回答:1

我打开像Exception类的NullpointerException子类,它有构造函数,没有其他方法。 JVM如何知道显示此类异常的情况?

java exception
1个回答
5
投票

有几个例外,JVM会在特定情况下自动抛出。其中包括NullPointerException或OutOfMemoryError。

因为sun / oracle已经定义了它们的确切目的,所以何时抛出它们的逻辑被编码到JVM本身中。 (例如,如果您的应用程序需要的内存多于可用内存,JVM知道它必须抛出OutOfMemoryError;如果您尝试访问null对象的字段或方法,它知道它必须抛出NullPoinerException)。

这些规则在JVM中明确规定并编纂。

在这种情况下,它们与您为自己创建的任何“自定义”异常不同。显然,JVM不知道它们的语义,也不会自动抛出它们。相反,你必须把它们扔掉。

顺便说一句:如果你想知道,为什么你不需要尝试/捕获块来处理NullPointerException:这是因为它们从RuntimeException继承。根据定义,不需要声明或明确捕获从RuntimeException继承的任何异常。 (你可以明确地声明和捕捉它们,但这是可选的)

希望这有帮助:)马蒂亚斯

© www.soinside.com 2019 - 2024. All rights reserved.