千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 如何处理Java中的空点异常

如何处理Java中的空点异常

来源:千锋教育
发布人:syq
时间: 2022-09-20 10:42:12 1663641732

  如果你花了一些时间在Java中开发程序,在某些时候你肯定会看到以下异常:java.lang.NullPointerException。由于 .在本文中,我们将介绍一些在Java中处理的方法。NullPointerException NullPointerException

如何处理Java中的空点异常

  简单空值检查

  请考虑以下代码段:

1

  如果按原样运行此代码,则会出现以下异常:

  Exception in thread "main" java.lang.NullPointerException

  您收到此错误的原因是因为我们尝试执行的操作是 .length()str1null

  一个简单的解决方法是添加一个空检查,如下所示:str1

2

  这将确保,当 是 时,您不会在其上运行该函数。str1nulllength()

  但您可能有以下问题。

  如果 str1 是一个重要的变量呢?

  在这种情况下,您可以尝试如下操作:

7

  这个想法是,当你期望一个值是 ,最好检查那个变量。如果该值确实是 ,则采取替代操作。nullnullnull

  这不仅适用于字符串,还适用于 Java 中的任何其他对象。

  龙目岛空值检查

  现在举个例子:

3

  这里我们有一个接受三个参数的函数:、 和 。str1strListstr2

  如果这些值中的任何一个被证明是,我们根本不想执行这个函数中的逻辑。null

  您如何实现这一目标?

  这就是龙目岛派上用场的地方。为了在代码中添加龙目岛库,请包含以下 Maven 依赖项:

4

  以下是龙目岛检查的代码外观:null

8

  在函数的每个参数之前,我们添加注释。@NonNull

  另外,当我们调用此函数时,我们在函数调用周围放置一个块来捕获 。try-catch NullPointerException

  如果函数中给出的任何参数原来是 ,则该函数将抛出一个 。然后,这将被块捕获。null NullPointerException try-catch

  这确保了,如果任何函数参数被证明是 ,那么函数中的逻辑不会被执行,我们知道代码不会异常表现。null

  这也可以通过一堆检查语句来完成。但是使用龙目岛可以帮助我们避免编写多个检查语句,并使代码看起来更干净。null null

  列表和空值

  假设您有一个列表,并且想要打印列表中的所有元素:

5

  在循环访问列表之前,我们需要对列表进行检查。null

  如果该检查不存在,则尝试循环访问列表将引发一个 。null null NullPointerException

  映射和空值

  让我们假设您需要访问映射中特定键的值的场景:

6

  首先,我们需要对映射对象本身执行 null 检查。如果未执行此操作,并且映射为 ,则抛出 a。这是使用null Null PointerException testMap!=null

  完成后,在访问特定密钥之前检查是否存在该密钥。您可以使用 检查密钥是否存在。如果未执行此操作,并且特定键不存在,则您将获得值。testMap.containsKey("first_key")null

  是否有必要始终添加空检查?

  如果您确定某个特定变量永远不会是 ,那么您可以避免添加检查。这可能适用于私有函数,您可以在其中控制进入功能的数据。null null

  但是,如果您不确定对象的可空性,最好添加一个检查。null

  法典

  本文中讨论的所有代码都可以在此 Github 存储库中找到。

  您现在知道如何在 Java 中进行处理了!NullPointerException

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT