Java 14中引入了新的JVM选项-XX:+ShowCodeDetailsInExceptionMessages ,以提供有用的NullPointerException消息 ,以准确显示在发生NullPointerException时为空。 例如,考虑以下代码:

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

在Java 14之前,JVM仅打印导致NPE的方法,文件名和行号:

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

如您所知,此错误消息不是很有用,因为无法确定哪个变量实际上为空(不使用调试器)。 是图书馆,从图书馆归还的书还是书的作者?

在Java 14中,启用-XX:+ShowCodeDetailsInExceptionMessages ,您将获得以下消息:

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

异常消息将查明什么是null( Book.getAuthor() ),并显示由于此而无法执行的操作( Author.getName() )。

翻译自: https://www.javacodegeeks.com/2020/05/java-14-helpful-nullpointerexception-messages.html

Java 14:有用的NullPointerException消息相关推荐

  1. 自动配置jdk_JDK 15中自动自动发送更好的NullPointerException消息

    自动配置jdk 我讨论了期待已久的和高度赞赏改进的NullPointerException ( NPE在帖)消息" 更好的默认NullPointerException异常消息即将到Java? ...

  2. Java 14 :NullPointerException的处理新方式

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululi 来源 | 公众号「锅外的大佬」 ...

  3. 更好的默认NullPointerException消息是否会传入Java?

    我最近对OpenJDK core-libs-dev邮件列表上的2019年 2月至2019年 3月的讨论感兴趣,该讨论涉及解决缺少与NullPointerException相关联的详细消息的问题,该消息 ...

  4. Java 14的新功能

    2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧版本,因为它具有向 ...

  5. 你好,了解一下Java 14带来的一系列新功能

    Java 14带来的一系列新功能 Java 14包含比前两个发行版更多的新功能-其中大多数旨在简化编码. 劳尔·加布里埃尔·乌尔玛(Raoul-Gabriel Urma) 下载本文的PDF Java ...

  6. Java 14 新功能介绍!

    Java 14 新功能介绍! Java 14预定于3月17日发布.那么,14版究竟有什么新功能,对于整天写代码.维护代码的Java开发者来说,哪些功能最有用呢? 作者 | Raoul-Gabriel ...

  7. Java 14:JDK 14进入GA时的所有新功能

    是的,六个月过去了这么快,现在到了,Java 14的发布即将到来. 我们一直在跟踪新JDK在过去半年中的进展,您可以在此处找到摘要的所有功能. 但是,如果您想直接进入,可以在此处找到JDK 14二进制 ...

  8. Java 14 GA 版本正式发布

    点击上方"IT牧场",选择"设为星标" 技术干货每日送达! Java 14 GA(General Availability) 版本已经于3月17日发布. Jav ...

  9. Spring Framework 5.2.5 发布,增加对 Java 14 的支持

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.oschina.net ...

最新文章

  1. 区块链概况:从数字货币说起
  2. 利用 Vmware 安装 Linux 虚拟机
  3. 发现一个好的索引-阳神
  4. 设计模式六大原则——迪米特法则(LoD)
  5. F5 APM针对Vmware view7.3 VDI业务发布测试问题分析
  6. 两行命令实现 ubuntu 上自动更新 Vscode
  7. 百度之星 1004 Labyrinth
  8. 一支口红用了5年_用了7年微信才知道!原来微信隐藏5大实用功能,比app更好用...
  9. SQLServer之修改DEFAULT约束
  10. 电路布线问题的动态规划实现(java)
  11. 华为5G专利收费标准曝光!原来卖专利真的很挣钱
  12. 为什么有人劝别选计算机专业?
  13. 《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.3节外部或内部主动式信息搜集...
  14. js获取最大整数的方法
  15. 云原生小课堂|Envoy请求流程源码解析(三):请求解析
  16. 类似京东商城客户端应用iOS源码
  17. java实现png有损压缩
  18. 深度linux比ubuntukylin,UbuntuKylin发行版的尴尬与无奈
  19. CISCO banner MOTD, Login的区别
  20. 用计算机绘制采油曲线,绘制采油曲线.ppt

热门文章

  1. P2158,jzoj1709-仪仗队【欧拉函数,数论】
  2. ssl2863-石子合并【dp练习】
  3. 初一模拟赛总结(6.6 my brother高考前一天,加油!(。・`ω´・。))
  4. 汇编语言(十二)之统计小于平均数的个数
  5. 在 Java 中初始化 List 的五种方法
  6. JAVA多线程和并发面试问题
  7. Spring Boot中mapper包所放位置的配置
  8. [编程入门]宏定义之闰年判断:给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计
  9. 如何给视频中插入视频,字幕,以及去掉前后广告
  10. mybatis报错Type interface xxx.Dao is not known to the MapperRegistry