【处理好你的异常】 ----------------- 异常处理是Java编程中非常重要的一个部分.建议在使用异常之前阅读<Effective Java Programming Language Guide>或者<Practical Java>. 下面从书中摘出几条建议: *绝对不要忽略异常 *千万不要隐藏异常*** *仅在不正常的情况下使用异常 *对可恢复的情况使用可检查异常,对程序错误使用运行时异常(RunTimeException) *给方法引发的异常做文档 *在详细信息里面包括失败捕获信息 *使用finally避免资源泄漏 *.... 在这里特别提出的是,在开发中要特别处理NULL的情况,否则经常引发NullPointException异常,在Java里这是一个最令人头疼的异常了. 如果你的程序因为一个NULL值,而报了几十个NullPointException的话,不但得让人烦死,而且还非常难以找到错误所在.所以在Java中一定要注意这个问题. 如果你的函数不允许Null值,那么可以截获它,抛出一个异常,或者给客户更友好的提示,难道不好吗? 让我们来看一个例子: public String getName(User aUser) { //如果aUser为Null,会发生什么情况 return aUser.getName(); } 很明显,如果参数为Null,就会抛出异常.应该改为: public String getName(User aUser) { if(null=aUser) { return ""; } else { return aUser.getName(); } } 或者你要求参数不能为空,还可以抛出一个异常,强制使用者不能传入空值. 还有经常被忽略的是RunTimeException和普通异常的区别,在Java中,这是一个特殊的异常类,程序中如果遇到这个异常,用户可以不截获它,而如果是其他的普通异常,就不许要截获它.我们的代码经常这么写: try { //your code here } catch(Exception e) { //do warn } 这样写的话,就截获了所有异常,当然也包括了RunTimeException. 在很多情况下,这是不合适的处理方式,我们只应截获必要的异常,而应该忽略RuntimeException.
|