关于Java异常一些基本的知识我这里就不在说了,大家可以去网上学习下。今天我主要讲解一下Java中异常处理的一些原则,我会尽量以代码的例子带大家去直观的感受异常的处理。
首先我们第一个疑惑的问题是异常到底是直接处理,还是向上抛出,供调用方处理或者框架统一集中处理,最后就是我们讲解如何写出一个我们自己的异常处理框架。


关于异常处理我总结了以下观点:
1.对于一些自定义的异常或者可预见的一些异常,应用异常,比如用户密码不正确,需要的某个资源不存在等等,抛出自定义检查型异常,但是真没有必要每个异常都定义一个异常类,让操作及时中止,然后交由异常处理框架统一处理。
2.对于调用一些涉及到需要关闭资源的操作,及时在finally里面关闭资源,同时转义成检查性异常,交由异常处理框架统一处理
3.一些无法预知的异常,系统异常,比如空指针等异常,无需捕获,交由异常处理框架统一处理
4.无论是你喜欢抛出检查性异常还是转义成非检查性异常,涉及到分包开发或者交由外部调用的必须在方法内注明可能抛出的异常类型,文档一定要健全。

我上面说的一般是J2EE开发相关的,如果涉及到性能要求比较苛刻,可能这个处理就不太合适了。同时可以看出来我喜欢用非检查型异常,提倡约定和文档,不喜欢检查性异常,不喜欢一层层的抛出。这个仁者见仁,智者见智,我说的也就是一家之言吧。

下面我们开始看各种示例代码:

后面接着写。。


defcon
381 声望10 粉丝

a guy