Java 14 ( JEP 358 )通过精确描述哪个变量为null来提高JVM生成的NullPointerException的可用性。
首先,无涯教程需要传递-XX:+ ShowCodeDetailsInExceptionMessages JVM标志,以在运行应用程序时启用此函数。
该选项将首先具有默认的 false ,以便不打印消息。它旨在在以后的版本中默认情况下在异常消息中启用代码详细信息。
-XX:+ShowCodeDetailsInExceptionMessages
现在运行一个非常简单的程序,以了解改进的错误消息的外观。在此程序的第7行,声明了一个尚未初始化的变量e。它可以是方法参数或返回值之类的任何东西。
在第9行中,无涯教程尝试使用其getter方法访问name属性。
package com.howtodoinjava.core.basic; public class HelpfulNullPointerException { public static void main(String[] args) { Employee e = null; System.out.println(e.getName()); } } class Employee { Long id; String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
请注意,消息现在如何清楚地告诉哪个方法调用导致了NPE,哪个变量是 null 。
如果无涯教程不使用此函数,则传统错误消息将如下所示:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Python实战 · 从0到1搭建直播视频平台 -〔Barry〕
HarmonyOS快速入门与实战 -〔QCon+案例研习社〕