每个程序员都会抛异常的问题吧!但如果抛的姿势不对,会很烦呐!就在刚刚,我才知道我抛异常的姿势很不对。
我以前没有打印异常日志的习惯,直到我看到别人打印日志,我也开始打印了。不得不说这样做确实不错,程序出问题了,只要看看日志就能明白个大概是哪里错了。
但是有个问题是,我只是把导致异常的原因打印出来了,所以当有异常的出现的时候,虽然知道是出了什么错,但,并不知道是哪个模块出问题了!这是一个大问题呐!
导致这个问题的原因大概有两种,其一就是代码太乱了,其二就是打印的异常信息太过抽象了。我们都知道越抽象越难搞呐!
所以改进的方法有两种,其一就是代码简洁,这个我正在学习,其二就是异常信息越具体越好,当然也不必太具体,判断的标准就是看一眼异常,就知道是哪个代码块出问题了,这是比较好的效果,因为如果能够达到这个效果,就不必浪费力气去寻找异常出在哪里的时间了。
就在今天下午,老板说,把软件部署到卡上,下午发货。因为代码早就写好了,也测好了,但临发之前还是要测试一下,确认一下比较放心,对不?于是我就开始测,这一测不要紧,因为测了一下之后出问题了。出大问题了。
程序不会跑了,一刷卡就崩溃,这也让我好崩溃呐!因为之前明明运行的很好,结果到了上阵杀敌的时候,却临阵逃跑了!怎么可以这样?虽然让我很烦,我也不知道哪里出问题了,我只知道这个问题是出在某个类里的,于是我就断点断点,一直断呐!终于发现了问题出在哪里,这个问题出的让我好气呐!
问题出在没有插串口设备!我的天呐!我的程序木有问题,我竟然还在那改了一些东西,改了三四十分钟呐!结果发现,程序没问题,而是忘记插串口设备了,这,这,这真的让我好无语呐!
如果当初我直接把这个异常信息之前添加一个“串口不存在”之类的信息的话,我想我是能够很快发现这个问题出在哪里的!哎,吃一堑,长一智吧!
所以以后写代码要留个心眼,抛异常的时候,记得在前面加个可以快速识别的信息,这样能够帮助我们快速定位错误在哪里!
因为解决程序的问题其实不难,难的是,不知道问题出在哪里!这才是最让人无语的问题呐!
说了这么多,其实只有一句话,在异常信息之前加点容易识别的定位信息,这就是我所谓的正确跑异常的姿势了。哈哈。