原先的一个项目使用的ant在编译和管理, 最近某个自认为的大牛, 感觉很不爽, 于是换成了Maven在打包编译.
但是项目依赖有很多的三方包, 其中的一个包Package依赖了Jedis, 但是大牛没有发现, 因为那个是写在Package的build里, 他发现不了...
于是就造成了一个莫名其妙的错误, 程序总是在某个地方的行为异常, try catch都捕捉不到.
在花费了两个人三天的时间后, 终于发现了这个纠结的问题. 原因是import error找不到包这个是一个ERROR, 不是Exception, 最终在把catch的对象从Exception换成Throwable后, 终于发现了坑爹的大牛!!!
这个故事告诉我们两个道理:
1. 以往的经验, 或者是别人在灌输给你的经验, 是不靠谱的.
比如无论那一本教科书都不会教你去catch Throwable, 因为这极少出现, 但是一旦出现, 不够钻研的人们就悲剧了.
2.项目的编译管理方式轻易不要修改.
无论你认为你是多么牛的大牛, 在详细了解整个项目的每个依赖包之前, 都不要贸然尝试.