出现空指针异常,常常是因为我们调用的对象是空的而抛出的异常

抛错场景

  1. 当对空属性或者空对象进行后台传值时可能会抛出异常。常见于接口传值为空或者返回值为空时
  2. 当对空属性或者空对象与另一个属性做比较时

问题定位:

  • 对于日志中的报错信息,在java中抛出异常是从内往外,需要重点关注第一行报错信息,下面的报错都是由于一层层传递调用该方法导致

空指针异常的解决方案:

  • Java中任何对象都可以为空,我们可以使用很多种方法来避免产生这类异常。比如我们传统的空值检测,编程规范,以及使用java中各种工具类。

常用的一种就是直接对 对象进行判断,比如if(XXX == null)来对所有用到的对象进行判断,这个对象也就是我们常用的函数参数,当检测到null值时,可以对异常的类型抛出,针对性的异常类型,做一个打桩输出,来确定。
如果使用过Lombok工具的话,里面有一个@NotNull注解,就是指被注释的元素不能为空,就会自定检测

遵守编程规范,可以减少一定的空指针异常的发生
如果返回是集合类型。而且是空的,不要返回null值,而是要返回一个空的集合,如果返回类型是对象的话,我们可以抛出异常

程序运行时报错NullPointerException(空指针)情况以及解决方法相关推荐

  1. linux直接运行程序加载动态库失败,扣丁学堂Linux培训详解程序运行时加载动态库失败解决方法...

    今天扣丁学堂Linux培训老师给大家介绍一下关于Linux程序运行时加载动态库失败的解决方法,希望对同学们学习有所帮助,下面我们一起来看一下吧. Linux下不能加载动态库问题 当出现下边异常情况 . ...

  2. pip安装kolla-ansible时报错Cannot install ‘PyYAML‘的解决方法

    pip安装kolla-ansible时报错Cannot install 'PyYAML'的解决方法 参考文章: (1)pip安装kolla-ansible时报错Cannot install 'PyYA ...

  3. 程序执行报错Missing Connection or ConnectionString 解决方法

    程序执行报错Missing Connection or ConnectionString 解决方法 参考文章: (1)程序执行报错Missing Connection or ConnectionStr ...

  4. 程序运行时报错 :0xC0000005: 写入位置 0x000000xx 时发生访问冲突的原因

    之前在写代码的时候碰到过这个问题:编译通过,但是在程序运行的时候就会停在某一行代码上,提示这个问题: 写入位置 0x0000xxxx 时发生访问冲突 一看到的反应自然是:我的代码出现越界问题了. 在这 ...

  5. matlab成功安装libsvm后,运行程序仍报错“svmtrain has been removed”解决方法记录

    系统:windows11 版本:MATLAB R2018b matlab使用支持向量机做回归预测时需要安装 libsvm 包并进行编译,参考此链接博客<http://t.csdn.cn/CfFo ...

  6. 用到zlib库的程序运行时报错:无法定位程序输入点createfile2于动态链接库KERNEL32.DLL上

    这是因为createfile2至少要windows8及以上才支持,想知道原理的可参看https://msdn.microsoft.com/en-us/library/windows/desktop/h ...

  7. [968]程序运行时报错:由于找不到mfc110.dll,无法继续执行代码的解决方法

    解决方案 出现此问题的原因主要是未安装VC++2012和VS2012的组件,自己直接下载安装即可,不用选择路径,一切按照默认进行. Win10环境下载:https://www.microsoft.co ...

  8. Pytorch运行时报错No module named ‘matplotlib‘--解决办法

    问题描述:我电脑装里pycharm里配置的是anaconda里的python环境,刚安装了pytorch来做一元线性回归问题,运行环境也相应改到pytorch所在目录下的python环境,结果在运行代 ...

  9. 运行Lattice Diamond时报错 License checkout failed的解决方法

    定位license.dat文件出错,打开环境变量,找到LM_LICENSE_FILE进行编辑,删去错误位置,保留license.dat文件的正确地址

最新文章

  1. ASP.NET Core [1]:Hosting(笔记)
  2. 理科大学二本计算机系,大学最好就业的二本专业:高校男生女生二本理科比较好的专业...
  3. 关于数据库插入中文乱码问题
  4. 利用Aria2高速下载网盘文件
  5. android 判断当前窗口,Android判断当前界面是否是home界面
  6. mysql索引为什么使用B+tree,InnoDB与MyISAM 的区别
  7. 毕淑敏:接纳自卑,感悟幸福
  8. php 处理tiff,TIFF图像文件(五):LZW的PHP应用
  9. bluestacks手机模拟器安装qq或微信时,鼠标左键点聊天编辑框后会自动输入 c 字母
  10. 国家二级计算机vb考试题型,2015全国计算机等级考试二级VB题型分析
  11. codeforces 812B. Sagheer, the Hausmeister
  12. gnss rtcm rtklib Ntrip...
  13. win10 关闭139 135 445端口 (危险端口关闭)
  14. 计算机桌面文件删除不掉是怎么了,小马教你桌面上文件夹删不掉 【设置方法】 的办法_...
  15. 计算机二级office查分数,3月份office计算机二级内网查分90,写下一点经验给后来人...
  16. 如何更改win7开机启动画面
  17. 爬虫框架开发(4)--- 项目实战——新浪滚动新闻资讯实时数据采集
  18. 工程师的基本功是什么?如何练习?—学习心得分享
  19. 图像处理入门和UltraLAB P620系列全能型、高性能、静音级便携工作站
  20. 15必须掌握的win7快捷键

热门文章

  1. executors与threadPoolExecutor区别
  2. Python的 yield用法
  3. MIL/SIL/PIL/HIL/VIL
  4. 写一份三年经验的Java简历
  5. 浮点数的二进制表示方法
  6. 集牛气 展虎威 | 指令集祝您新春快乐,虎年大吉!
  7. LaTeX常用操作:添加标题、作者、时间、摘要、标题、段落、目录、字体、引用、脚注、图片\表格插入、数学符号、公式、交叉引用等
  8. 模电知识体系总结-1.1半导体基础器件
  9. python之pip常用命令
  10. vscode 无法输入输出