前提:SalariedEmployee(月薪资) 和HourlyEmployee(时薪资)子类继承Employee的抽象父类,来获取父类里的属性/方法,并重写扩展为自己的方法。

先来看下我的报错情况:NullPointerException

  1. 此处输出的3是因为我获取了一下当前的月份,所以基本锁定在输出语句System.out.println(month);也就是24行之后;

空指针异常:是一个运行级别的异常,即只有在运行时才会抛出NullPointerException
在看到这个异常之后,我首先想我的数组是存在的,有没有初始化?有;访问的对象是否存在?存在;对象是否为空?应该不为空(结果是空的,草率了)

  1. 断点调试:主要针对24行以后的代码:可以看到emps[0] = null; emps[1] = null;首先我确定了数组有初始化后,其次new SalariedEmployee()new HourlyEmployee()是没问题的;接着name/number/birthday等的赋值操作都是调用的子类的toString()方法;
  2. 继续往下走,果然显示toString()方法抛出了NullPointerException
  3. 首先两个子类的toString()方法都是重写的父类的toString()方法,但方法内部调用了super.toString();

  4. 继续往下走,可以看到父类EmployeetoString()方法只是returnname,number,birthday.toDateString()方法而已;
  5. 想着总不可能变量出错吧,检查birthday.toDateString()方法,里面也只是returnMyDate的属性,且没有问题;
  6. 一路都没有问题,不得不去检查Employee的属性了,好吧,破案了!属性没有问题,构造器里空空如也,没有this调用,所以当调用此构造器时,输入的name/number/birthday将不能传给此时正在创建的对象,当然也就无法输出了;

    8.破案后的正常输出!

    名言(我说的):debug很难搞,但debug成功后还好:)

记录一次空指针异常(NullPointerException)的断点调试相关推荐

  1. IDEA--IDEA debug断点调试技巧

    目录 一.Debug开篇 二.基本用法&快捷键 三.变量查看 四.计算表达式 五.智能步入 六.断点条件设置 七.多线程调试 八.回退断点 九.中断Debug Debug用来追踪代码的运行流程 ...

  2. IntelliJ IDEA-Debug断点调试 看这篇文章就够了

    详解IntelliJ IDEA-Debug断点调试 如今,IntelliJ IDEA 目前深受广大开发者喜爱,我们在实际开发工作中,不管是用来阅读源码还是在开发过程中都需要进行代码调试. 以下为大家准 ...

  3. clodeblocks debug断点调试_Intellij IDEA高阶DEBUG大杀器

    前言 目前工作中由于环境复杂等客观因素,无法在本地启动项目进行 Trouble Shooting,需要打开测试环境的 DEBUG 端口,进行远程调试.为了不影响其他用户同时使用测试环境以及相关系统的正 ...

  4. 又掌握了一项新技能 - 断点调试 Gradle 插件

    前言 最初开发Android应用程序的时候,肯定是在打log调试,然后慢慢地觉得打log效率太低下了,不能快速定位问题,于是走上了断点调试之路.Gradle插件也一样,从会写插件那一刻起到现在,一直用 ...

  5. 大型前端项目的断点调试共享化和复用化实践

    作者:enoyao,腾讯工程师 背景 随着我们项目越来越大,我们有可能需要维护很多的模块,我们腾讯文档 Excel 项目大模块有 10 几个,而每个大模块分别有 N 个小模块,每个大模块下的小模块都有 ...

  6. vscode+php+phpstudy:断点调试(f5后vscode无法继续下一步;浏览器无法断点,直接返回执行结果的解决方法)

    文章目录 前言 1.设置phpstudy 2.设置vscode 前言 以前用的phpstorm断点调试,今天突然想用vscode断点调试,就是不能继续执行断点下一步,都是如下图所示 看了诸多博客,步骤 ...

  7. PHP笔记-使用PHPStorm断点调试php代码

    最近在撸php,书上都不交断点调试,这尼玛坑得很,没有断点的开发程序,就是坑,通过查阅和摸索,调试成功,在此记录下: php版本:7.1 phpstorm版本:2020.3 首先运行下: <?p ...

  8. 不能断点调试python_为Python调试构建一个不间断的断点

    不能断点调试python 这是Rookout团队如何为Python建立不间断断点的故事,以及我们在此过程中学到的一些经验教训. 我将在本月于旧金山的PyBay 2019上展示有关Python调试的所有 ...

  9. VS2008无法下断点调试的原因

    VS2008单步调试时出错,原来的断点处显示一个空心圆加一个右下角的警告图标,调试无效,会直接跳过该断点.鼠标放在该断点上有如下提示: The breakpoint will not currentl ...

最新文章

  1. tensorflow 之 tf.reshape 之 -1
  2. 著名开源项目_著名开源项目案例研究
  3. 一起学微软Power BI系列-官方文档-入门指南(2)获取源数据
  4. 是时候详细探究webview了
  5. 双系统(win10 1803+deepin 15.7)安装问题
  6. HTML元素基础学习
  7. vijos p1782——借教室(noip2012提高组第2题)
  8. 比深度学习更值得信赖的模型ART
  9. 如何列出所有用户的所有cron作业?
  10. SQL Server 新增数据表数据
  11. 微软高性能网络编程示例程序
  12. 234.回文链表(力扣leetcode) 博主可答疑该问题
  13. OI队的土豆树(C++)
  14. 增值电信业务经营许可证在怎么申请 办理攻略在这里
  15. 人工神经网络的数学内涵,神经网络的数学表达式
  16. word/exce转lPDF乱码(思源字体)
  17. 20189217 2018-2019-2 《密码与安全新技术专题》第11周作业
  18. 巴西龟饲养日志-----黑壳虾
  19. initWithFrame/initWithCode/awakeFromNib调用
  20. 如何使用api调用AI抠图服务

热门文章

  1. (数据分析三板斧)第一斧Numpy-第一节:Numpy基本了解
  2. (软件工程复习核心重点)第一章软件工程概论习题
  3. 2-4:套接字(Socket)编程之TCP通信
  4. 利用递归的方法求最大公约数和最小公倍数(Java)
  5. c++程序设计中多态与虚函数知识点
  6. C/C++:C语言小程序—批量重命名文件
  7. etcd和redis的比较和日常使用场景
  8. hnust 神奇的序列
  9. 在Linux下锁住键盘和鼠标而不锁屏
  10. MongoDB Replication