前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java14新特性:增强NPE NullPointerException

Java14新特性:增强NPE NullPointerException

作者头像
一觉睡到小时候
发布2020-03-31 15:41:17
6470
发布2020-03-31 15:41:17
举报
文章被收录于专栏:国产程序员国产程序员

改进 NullPointerExceptions,通过准确描述哪些变量为 null 来提高 JVM 生成的异常的可用性。该提案的作者希望为开发人员和支持人员提供有关程序为何异常终止的有用信息,并通过更清楚地将动态异常与静态程序代码相关联来提高对程序的理解。

代码语言:javascript
复制
String name = user.getLocation().getCity().getName();

在Java 14之前,你可能会得到如下的错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerExceptionat 
NullPointerExample.main(NullPointerExample.java:2)

不幸的是,如果在第2行是一个包含了多个方法调用的赋值语句(如getLocation()和getCity()),那么任何一个都可能会返回null。实际上,变量user也可能是null。因此,无法判断是谁导致了NullPointerException。

在Java 14中,新的JVM特性可以显示更详细的诊断信息:

代码语言:javascript
复制
Exception in thread "main" java.lang.NullPointerException: 
Cannot invoke "Location.getCity()" 
because the return value of "User.getLocation()" is null
 at NullPointerExample.main(NullPointerExample.java:)

该消息包含两个明确的组成部分:

  • 后果:Location.getCity()无法被调用
  • 原因:User.getLocation()的返回值为null
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 国产程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档