Java14 - Helpful NPE

Java14 - Helpful NPE 首页 / Java入门教程 / Java14 - Helpful NPE

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

Exception in thread "main" java.lang.NullPointerException: 
	Cannot invoke "com.howtodoinjava.core.basic.Employee.getName()" because "e" is null
	at com.howtodoinjava.core.basic.HelpfulNullPointerException.main 
	(HelpfulNullPointerException.java:9)

如果无涯教程不使用此函数,则传统错误消息将如下所示:

Exception in thread "main" java.lang.NullPointerException
	at com.howtodoinjava.core.basic.HelpfulNullPointerException.main
	(HelpfulNullPointerException.java:9)

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

玩转webpack -〔程柳锋〕

网络编程实战 -〔盛延敏〕

JavaScript核心原理解析 -〔周爱民〕

互联网人的英语私教课 -〔陈亦峰〕

说透数字化转型 -〔付晓岩〕

程序员的个人财富课 -〔王喆〕

PyTorch深度学习实战 -〔方远〕

超级访谈:对话汤峥嵘 -〔汤峥嵘〕

超级访谈:对话玉伯 -〔玉伯〕

好记忆不如烂笔头。留下您的足迹吧 :)