为了账号安全,请及时绑定邮箱和手机立即绑定

异常类定义

异常类定义

aluckdog 2021-08-25 16:45:31
我Exception像NullpointerException类一样打开子类,它有构造函数,没有其他方法。JVM 如何知道要显示此类异常的情况?
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

JVM 会在特定情况下自动抛出一些异常。NullPointerException 或 OutOfMemoryError 就在其中。

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

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

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

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


查看完整回答
反对 回复 2021-08-25
  • 1 回答
  • 0 关注
  • 140 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信