我正在寻找清理当前正在处理的代码库的异常混乱。如何清理异常处理?
基本设置是这样的。
我有一个是通过大量的类,看起来像这样实现的接口:
public interface TerminalMessage<E> {
// Override for specific return data type.
public E send(TerminalStream stream) throws Exception;
}
这些类扔了很多不同的异常,如IOException异常,InterruptedException异常等
,因为它是现在,我所做的就是调用getMessage()获取捕获的异常,并将此消息转发给ui-code。
这不是很好,因为我有时会向用户显示虚假消息,并且发现不需要的异常。
我想创建一个自定义的异常类(TerminalException),它将包装所有这些类型的异常。
但是我不确定在哪里做包装,如果包装是在第一次抛出异常(例如在输出流中)或每个send()方法中完成的。前者具有不增加太多代码的优点,但对于我来说,更有意义的是,流引发IOException而不是TerminalException。
上述设计并不能真正解决显示给用户的有时是坏信息,所以一些提示如何将抛出的异常转换成对用户有用的东西将是非常好的!
谢谢!
我强烈建议你阅读这篇文章http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html?page=2 – aviad 2012-04-24 07:35:44