Java14HelpfulNPE

Java14HelpfulNPE 首页 / Java入门教程 / Java14HelpfulNPE

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)

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

教程推荐

结构执行力 -〔李忠秋〕

Python实战 · 从0到1搭建直播视频平台 -〔Barry〕

手把手带你搭建秒杀系统 -〔佘志东〕

HarmonyOS快速入门与实战 -〔QCon+案例研习社〕

基于人因的用户体验设计课 -〔刘石〕

小马哥讲Spring AOP编程思想 -〔小马哥〕

实用密码学 -〔范学雷〕

编辑训练营 -〔总编室〕

玩转Spring全家桶 -〔丁雪丰〕

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