我正在研究一个错过了项目的项目,由于某些原因,即使应该有例外也没有例外.在内心深处,我发现了这种错误处理:
try { m.invoke(parentObject, paramObj); } catch (IllegalArgumentException e) { new CaseLibException(e); } catch (IllegalAccessException e) { new CaseLibException(e); } catch (InvocationTargetException e) { new CaseLibException(e); }
我的大脑认识到有几个例外被包裹在另一个中,所以这并不是那么糟糕.但我不得不偶然发现这段代码至少3次,看看有什么遗漏......
你找不到的最愚蠢的bug是什么?
我修复了一个错误,每天应用程序在每天下午6:12崩溃.
原来有人在16bit int中存储了自当天开始以来的秒数.
在C/C++中(我最近学到的)
if (x = 0) { ... }
I=1
Fortran的那一行根本就没用了.
经过几个小时无果而终的调试后,我吞下了自己的骄傲,并和我一起走过代码.
来到那条线,我说,"现在我们增加下标."
"咦?" 他说.
就在那时我才意识到我正在读我的意图:
I=I+1
而不是我写的.
请记住,下次你被卡住而无法弄清楚出了什么问题.
不要让你的骄傲阻止你招募第二双眼睛.
一旦我编写了一个函数来将日期时间字符串解析为另一种格式.在其中我有一个switch/case语句来解析月份值,它看起来像这样:
case month of: 01: return "Jan"; break; 02: return "Feb"; break; ... etc ... 09: return "Sep"; break; 11: return "Nov"; break; 12: return "Dec"; break; end;
出于某种原因,我在10月份遗漏了......
for i = 0 to ( list.Length - 1 ) do begin DoSomething( 1 ); end;
尝试在凌晨3点用一个小字体在一个糟糕的显示器上找到它!;)