自动配置jdk
我讨论了期待已久的和高度赞赏改进的NullPointerException ( NPE在帖)消息“ 更好的默认NullPointerException异常消息即将到Java? ”和“ JDK 14中更好的NPE消息 ”。 当此JEP 358驱动的功能添加到JDK 14中时 ,想要从这些更深入的NPE消息中受益的开发人员需要通过将参数-XX:+ShowCodeDetailsInExceptionMessages
传递给Java启动器( java
)来明确声明该需求。
本周发布了JDK 15 Early Access Build #29 ,它会自动使用更好的NPE消息。 与该早期访问构建状态相关的发行说明 :“标志ShowCodeDetailsInExceptionMessages
的默认值已更改为' true
'。 现在,默认情况下会打印JEP 358的有用的NullPointerException
消息。 这些消息包含引发NullPointerException
的代码片段。”
下一个屏幕快照展示了JDK 15 Early Access Build#29自动提供了有用的NullPointerException
详细信息。
该发行说明还指出,默认情况下编写“有用的” NullPointerException
消息的一种潜在风险是意外泄露敏感细节。 发行说明警告:“应用程序部署人员应仔细检查其Web应用程序的输出和类似的使用场景。 NullPointerException消息可以包含在应用程序错误消息中,也可以通过其他方式在应用程序中显示。 这可以为远程攻击者提供有关正在使用的软件组件的潜在易受攻击状态的有价值的提示。”
下一个屏幕快照演示了可以通过使用java
启动器选项-XX:-ShowCodeDetailsInExceptionMessages
禁用自动显示有用的NullPointerException
详细信息(即使现在是默认设置,仍旧支持-XX:+ShowCodeDetailsInExceptionMessages
):
JDK-8233014更改以使NullPointerException
消息默认启用的有趣结果是,毫无疑问,一些Java开发人员在升级到JDK 15时会惊喜地发现,在遇到无处不在的NullPointerException
时突然看到有用的消息。
翻译自: https://www.javacodegeeks.com/2020/07/better-nullpointerexception-messages-automatic-in-jdk-15.html
自动配置jdk