异常类定义

时间:2018-09-02 06:52:59

标签: java exception

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

1 个答案:

答案 0 :(得分:5)

在某些情况下,JVM会自动抛出一些异常。其中包括NullPointerException或OutOfMemoryError。

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

这些规则已在JVM中明确指定和编码。

在这种情况下,它们与您为自己使用而创建的任何“自定义”异常不同。显然,JVM不了解它们的语义,并且永远不会自动抛出它们。相反,您必须自己丢掉它们。

BTW:如果您想知道为什么不为NullPointerException使用try / catch块:这是因为它们继承自RuntimeException。根据定义,从RuntimeException继承的任何异常都无需声明或显式捕获。 (您可以显式声明并捕获它们,但这是可选的)

希望这会有所帮助:) 马赛厄斯