计划给予心脏公式
2015-06-30 18:53
211 查看
程序开发中的各种报错并不能归为BUG,至少它们比BUG还要低一个等级。由于这个阶段你还没有写出真实可用的程序,开发又进行不下去了,着实郁闷。
近期在帮人解决报错时突然悟道:报错,事实上就是七个字——"少了,多了,对不上"。
控制台输出的报错日志99%的报错都是这三个原因造成的。
"少了",顾名思义就是程序找不到须要的资源了。
著名的"java.lang.ClassNotFoundException"就是这一派的代表人物。
原始的包管理中,一堆的jar包堆在lib文件夹里。少了一个两个。通常可以让你收到一打的"ClassNotFoundException"了。和jar包们朝夕相处久了,他们少了哪一个,瞄一眼就补上了。
当初个个跟天外来客一样还有版本号匹配什么的。能集成一套让程序跑起来。恨不得把他们珍藏起来。
报404、No Mapping之类的都去查他们的来源是不是因各种原因少了或是根本没有配。总之,程序跟你抱怨找不到东西了。不要发脾气,耐心地帮他一起找吧。
"多了",和前面正好相反,只是他不会说找不到东西了。他可能会抱怨"could not be resolved"或是其它婉约的表达。所以你看到程序開始胡说八道了,但又没少东西。找找"Root cause of "附近的类所属的资源。
加了同样的jar包,配多了资源。写多了忘了凝视。反正东西多了程序不知道该用哪个,还不知怎么说,就開始胡说了。
"对不上",事实上是前面两个的综合体。多了不该要的。少了该要的。这样的报错有时候报的非常明显。
Oracle的数据库用了MySQL的数据驱动包。拼写XML报文头尾没合上等等。这些一眼就能看出来了。
怕的就是一些相似的资源搞混了,还没有报错。比方结构同样的内网数据库配反了。
程序启动不会报异常,但非常快会发现数据对不上之类。这类错误比較难排查。
只是仅仅要熟记"七字口诀",逐项排除,报错还是很easy排除。
近期在帮人解决报错时突然悟道:报错,事实上就是七个字——"少了,多了,对不上"。
控制台输出的报错日志99%的报错都是这三个原因造成的。
"少了",顾名思义就是程序找不到须要的资源了。
著名的"java.lang.ClassNotFoundException"就是这一派的代表人物。
原始的包管理中,一堆的jar包堆在lib文件夹里。少了一个两个。通常可以让你收到一打的"ClassNotFoundException"了。和jar包们朝夕相处久了,他们少了哪一个,瞄一眼就补上了。
当初个个跟天外来客一样还有版本号匹配什么的。能集成一套让程序跑起来。恨不得把他们珍藏起来。
报404、No Mapping之类的都去查他们的来源是不是因各种原因少了或是根本没有配。总之,程序跟你抱怨找不到东西了。不要发脾气,耐心地帮他一起找吧。
"多了",和前面正好相反,只是他不会说找不到东西了。他可能会抱怨"could not be resolved"或是其它婉约的表达。所以你看到程序開始胡说八道了,但又没少东西。找找"Root cause of "附近的类所属的资源。
加了同样的jar包,配多了资源。写多了忘了凝视。反正东西多了程序不知道该用哪个,还不知怎么说,就開始胡说了。
"对不上",事实上是前面两个的综合体。多了不该要的。少了该要的。这样的报错有时候报的非常明显。
Oracle的数据库用了MySQL的数据驱动包。拼写XML报文头尾没合上等等。这些一眼就能看出来了。
怕的就是一些相似的资源搞混了,还没有报错。比方结构同样的内网数据库配反了。
程序启动不会报异常,但非常快会发现数据对不上之类。这类错误比較难排查。
只是仅仅要熟记"七字口诀",逐项排除,报错还是很easy排除。
相关文章推荐
- Dev-如何查找资料
- 【建议】数据分析的 7 个关键步骤
- 周记——20150629
- MTK6577+Android之音频(audio)移植
- 诸葛分享:怎么面试架构师
- Hadoop第八讲
- android xfermode绘图
- 实现复数类中的加运算符重载【C++运算符重载】
- Gradle入门指南(二)
- HBase客户端API基本操作
- Android SDK开发包国内下载地址
- Mysql Concat()bug
- java设计模式之单例模式
- MySQL Study之--MySQL集群之mysql 主从复制
- 2015上半年我的理财小心得
- get(index) set(index value), setAll(value)都为O(1)的数据结构
- C++ STL--stack/queue 的使用方法
- #ifndef、#define、#endif等宏的使用
- CentOS下通过yum安装svn及配置
- python中的元类metaclass