对于异常的误用着实很常见,上一部分中已经列举了几个,大家仔细的看一下。下面再说两个其他的。
例1. 用一个exception来捕捉所有的异常,颇有"一夫当关万夫莫开"的气魄。不过这也是最傻的行为。
public void readfile(string file) {
bufferedreader reader = null;
connection conn = null;
try {
reader = new bufferedreader(new inputstreamreader(
new fileinputstream(file)));
// do some other work
conn = drivermanager.getconnection("");
//...
} catch (exception e) {
e.printstacktrace();
} finally {
try {
reader.close();
conn.close();
} catch (exception e) {
e.printstacktrace();
}
}
}
从异常角度来说这样严格的程序确实是万无一失,所有的异常都能捕获。但是站在编程人员的角度,万一这个程序出错了我们该如何分辨是到底是那引起的呢,io还是jdbc...所以,这种写法很值得当做一个反例。大家不要以为这种做法很幼稚,傻子才会做。我在公司实习时确实看见了类似的情况:只不过是人家没有用exception而是用了throwable。
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/