专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java14中打印更明确的NPE信息(java打印菱形)

temp10 2024-10-31 15:04:19 java教程 17 ℃ 0 评论

在Java14的JVM选项中,增加了一个【-XX:+ShowCodeDetailsInExceptionMessages】选项,该配置在出现NPE异常的时候,能够打印出更加详细的信息,帮助更快速定位异常位置。

比如:

Java14中打印更明确的NPE信息(java打印菱形)

var name = library.get("My Book").getAuthor().getName();

如果出现NPE异常,在Java14之前,只会打印出文件名,方法,行数:

Exception in thread "main" java.lang.NullPointerException 
at Library.main(Library.java:7)

在这种情况下,到底是哪里出现了NPE,是library,还是author出了问题?没法准确的判断,往往我们就得借助DEBUG来调试判定了。

在Java14中,当我们开启了【-XX:+ShowCodeDetailsInExceptionMessages】,我们就可以得到下面的异常信息:

Exception in thread "main" java.lang.NullPointerException:
Cannot invoke "Author.getName()" because the return value of "Book.getAuthor()" 
is null at Library.main(Library.java:7)

该异常信息非常明确了,是Book.getAuthor()方法返回的Author是空的,导致在调用Author.getName()方法的时候抛出了NPE。

该选项生产环境建议关闭。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表