Java 14:有用的NullPointerException消息
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消息相关推荐
- 自动配置jdk_JDK 15中自动自动发送更好的NullPointerException消息
自动配置jdk 我讨论了期待已久的和高度赞赏改进的NullPointerException ( NPE在帖)消息" 更好的默认NullPointerException异常消息即将到Java? ...
- Java 14 :NullPointerException的处理新方式
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | liululi 来源 | 公众号「锅外的大佬」 ...
- 更好的默认NullPointerException消息是否会传入Java?
我最近对OpenJDK core-libs-dev邮件列表上的2019年 2月至2019年 3月的讨论感兴趣,该讨论涉及解决缺少与NullPointerException相关联的详细消息的问题,该消息 ...
- Java 14的新功能
2020年3月17日,Oracle发布了名为Java 14的Java新版本,其中包括许多新功能,工具,安全性,调试和更新的文档方面的改进. 但是,Oracle还向您提供Java的较旧版本,因为它具有向 ...
- 你好,了解一下Java 14带来的一系列新功能
Java 14带来的一系列新功能 Java 14包含比前两个发行版更多的新功能-其中大多数旨在简化编码. 劳尔·加布里埃尔·乌尔玛(Raoul-Gabriel Urma) 下载本文的PDF Java ...
- Java 14 新功能介绍!
Java 14 新功能介绍! Java 14预定于3月17日发布.那么,14版究竟有什么新功能,对于整天写代码.维护代码的Java开发者来说,哪些功能最有用呢? 作者 | Raoul-Gabriel ...
- Java 14:JDK 14进入GA时的所有新功能
是的,六个月过去了这么快,现在到了,Java 14的发布即将到来. 我们一直在跟踪新JDK在过去半年中的进展,您可以在此处找到摘要的所有功能. 但是,如果您想直接进入,可以在此处找到JDK 14二进制 ...
- Java 14 GA 版本正式发布
点击上方"IT牧场",选择"设为星标" 技术干货每日送达! Java 14 GA(General Availability) 版本已经于3月17日发布. Jav ...
- Spring Framework 5.2.5 发布,增加对 Java 14 的支持
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://www.oschina.net ...
最新文章
- 区块链概况:从数字货币说起
- 利用 Vmware 安装 Linux 虚拟机
- 发现一个好的索引-阳神
- 设计模式六大原则——迪米特法则(LoD)
- F5 APM针对Vmware view7.3 VDI业务发布测试问题分析
- 两行命令实现 ubuntu 上自动更新 Vscode
- 百度之星 1004 Labyrinth
- 一支口红用了5年_用了7年微信才知道!原来微信隐藏5大实用功能,比app更好用...
- SQLServer之修改DEFAULT约束
- 电路布线问题的动态规划实现(java)
- 华为5G专利收费标准曝光!原来卖专利真的很挣钱
- 为什么有人劝别选计算机专业?
- 《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.3节外部或内部主动式信息搜集...
- js获取最大整数的方法
- 云原生小课堂|Envoy请求流程源码解析(三):请求解析
- 类似京东商城客户端应用iOS源码
- java实现png有损压缩
- 深度linux比ubuntukylin,UbuntuKylin发行版的尴尬与无奈
- CISCO banner MOTD, Login的区别
- 用计算机绘制采油曲线,绘制采油曲线.ppt
热门文章
- P2158,jzoj1709-仪仗队【欧拉函数,数论】
- ssl2863-石子合并【dp练习】
- 初一模拟赛总结(6.6 my brother高考前一天,加油!(。・`ω´・。))
- 汇编语言(十二)之统计小于平均数的个数
- 在 Java 中初始化 List 的五种方法
- JAVA多线程和并发面试问题
- Spring Boot中mapper包所放位置的配置
- [编程入门]宏定义之闰年判断:给年份year,定义一个宏,以判别该年份是否闰年。提示:宏名可以定义为LEAP_YEAR,形参为y,既定义宏的形式为 #define LEAP_YEAR(y) (读者设计
- 如何给视频中插入视频,字幕,以及去掉前后广告
- mybatis报错Type interface xxx.Dao is not known to the MapperRegistry