JAVA开发异常处理十大秘诀

73 篇文章 0 订阅
68 篇文章 1 订阅

1.前提
  第一层:遇到异常首先必须告诉自己,冷静,不要慌。(一看到Bug就心慌,那么武功就施展不了了)

2.入门级
第二层:遇到Bug,第一潜意识看输出异常的信息的(控制台输出,Junit输出,页面输出),优先将异常输出在控制台。

建议:遇到JUnit异常输出,最好转成控制台输出。(对测试方法的代码try catch )
如:一下异常如果在Junit查看,不好发现为,只知道是数据库出错了。转成为控制台异常立刻就看到是缺少了一个字段。

控制台的异常更加直观

在这里插入图片描述
在这里插入图片描述
第三层:查看异常的第一个关注点:异常的名字,通过异常名字大概可以给异常分类。
如:根据这个异常的名字就知道,异常出现在数据库操作。

在这里插入图片描述

第四层:查看异常的第二个关注点:异常的信息,很多异常的信息已经说明了异常的问题(30%)

如:该异常,明眼的同学立刻就知道数据库操作不成功,问题出在配置少了一个字段。

在这里插入图片描述

3.应用级
第五层:以上操作不能解决,查看异常的第三个关注点:在异常中寻找是否有自己写的类,定位异常出错的位置。
如下图:明显告诉为,是DataSourceTest.java:23,就是该类的23行出错了。可以点进去
在这里插入图片描述
  --点击进去,设置断点
在这里插入图片描述
  第六层:在该出错的位置System.out.print()输出数据,分析数据(可选,如果会断点跳过该步)

第七层:在该出错的位置,设置调试断点,根据单步调试,分析断点输出的数据。使用watch操作获得重点关注的数据。(80%)
注意:该步骤,包括在浏览器调试js代码的流程。
重点:
(1)找的异常的代码位置(通过在异常信息里面找到自己的报错位置!!)
在这里插入图片描述

(2)理解异常和数据的关系(难点)

4.高手级
第八层:有些问题,出错是无法设置断点的,启动程序就出错了。而且这种问题,经常这种异常就没有自己写的类,断点调试的功力就被废了。遇到这种问题,第一意识要想到,这些问题不是Java代码的出错,出现这种问题的原因:开发环境出错,JSP页面出错,配置文件、配置类出错

(1)如何判断是开发环境出错:看看项目有没有错误警告。

(2)如何判断是否是页面出错:查看页面异常信息和控制台
通常页面出错,异常会告诉你,哪个页面出错。这是很重要的信息。
接着的问题只能根据信息提示解决了
在这里插入图片描述
(3)如何判断是配置文件出错:查看控制台信息,有时控制台找不到想要的。可以通过设置入口断点的方式。
如:在配置struts.xml配置是否出错,在Action的方法入口处设置一个断点。如果都没有执行代码逻辑就出错了,那么可以判断,就是web.xml获得strust.xml配置错了,不可能是代码出错。

注意:
分析配置文件异常时:
如果网站连启动都启动不了的,重点关注web.xml
如果网站可以启动的关注非web.xml的配置文件 (90%)

5.骨灰级
第九层:隔离法(99%)
在作为以上所有操作,都无法找到异常的原因,可以使用隔离法。可以分为代码隔离和业务隔离。

(1)代码隔离法
同一个程序中,根据异常的范围,停止与异常无关的代码模块的执行,并且在代码执行的流程的各处设置辅助断点跟踪。

做demo。对原理不太熟悉的代码。!!!!

(2)业务隔离法
分布式开发中,一个系统有多个子系统组成。往往一个业务的实现要调用N个子系统的接口。经常会出现,开发时功能是好的。上线时就出错问题。遇到这种问题,在前八层的功力都无法分析时,那么就要将各个业务系统隔离分析了。

代码隔离经常用于
(1)没有输出有效异常信息的异常。
(2)出现的异常不是固定的,有时可以有时不可以。

6.神级
  第十层:根据多年积累的经验。使用直觉,可以立刻定位绝大大部分问题,不需要任何招数。在直接判断不了再使用以上的方法拆招。
最后
欢迎大家留言评论,记得关注我哦,每天持续更新技术干货、职场趣事、海量面试资料等等
如果你对java技术很感兴趣也可以加入我的java学习群(374308445)来交流学习,里面都是同行,群验证【CSDN2】有资源共享。
不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值