2011-04-25 111 views
3

以下这样的问题: Handling exceptions in a Swing UI (low level to high level and exception wrapping)三层体系结构:必须避免层之间的异常依赖关系?

存在这样的异常正在从方法抛出在服务类的逻辑/服务和UI层之间有明显的相关性(IOException的从一个文件的操作来)和被处理在Swing组件的代码中。

这是要避免的事情吗?如果最好避免这样的依赖关系,那么服务类中的异常怎么处理呢?我应该简单地将Exception包装在RuntimeException中并让它传播到UncaughtExceptionHandler?

回答

2

如果异常是服务层的公共API的一部分,那么依赖它们是完全没问题的。但是,不要让这些异常逃脱通过你的UI控制器进入UI,这可能是一个好习惯。从那里你应该通知UI你想发生什么,因为这个例外。

1

如果您保存/加载数据,则在图层之间共享IOException属于正常现象。但是像SaxParserException/SqlException这样的例外应该被封装,因为它们依赖于当前的实现。