对于一个异常,通常异常的类型对我们更有意义
那在struts中设计自定义异常时,只从Exception类简单继承一下,派生多个不同名字的异常,这样在action中根据捕获的不同异常类型进行相应的处理
这样做对吗?还应注意哪些问题或应遵循什么样的原则?
------解决方法--------------------------------------------------------
设计自定义异常,是为了对系统抛出的异常进行隐藏,
对抛出的 异常进行包装,然后把自己的异常抛出,
不但对异常进行了处理,也不影响程序的“正常”执行(指对异常的进一步处理)。
自定义异常,必须继承系统可以捕捉到异常的子类或者接口。
这样,才能保证,自己的异常,可以被处理掉。就是被捕捉到。
还有,一般的系统,你可以定义一个异常接口,然后其他的异常可以是这个接口的子类,
那么,对于程序,就可以体现“面向接口编程”的思想。
------解决方法--------------------------------------------------------
commons-lang的NetestableRuntimeException,NetestableException蛮好用的,自定义异常继承或参考它们实现较好,已经实现了异常嵌套。简单继承一下就可以了,你的看法是对的,重要的是异常的类型。
系统异常,一般为unchecked exception(RuntimeException的子类),在系统框架最高层统一处理。
业务异常,应为checked Exception,强迫调用者捕获。