Eclipse插件的集中式异常处理

Svi*_*len 6 eclipse exception-handling

起初我认为这将是经常被问到的问题,但是尝试(并且失败)查找有关这方面的信息证明我错了.

Eclipse平台中是否存在用于异常的集中异常处理的机制?

例如......您有插件项目,它连接到数据库并发出查询,其结果用于填充一些例如视图.这就像有史以来最常见的例子.:)几乎任何用户操作都会执行查询,从插件提供的每个UI控件开始.很可能DB Query API将特定于DB SomeDBGeneralException声明为由它抛出.没关系,你可以根据你的软件设计处理那些.但是,如果未经检查的异常可能会发生,例如,当与DB的通信突然因某些网络相关原因而中断时?如果在这种情况下,人们希望在中心位置捕获这些异常并且例如向用户提供用户友好的消息(而不是低级通信协议api消息)甚至用户可以执行以便处理的一些可能的动作.具体问题?

在Eclipse平台上下文中思考,问题可以改为"是否有像org.eclipse.ExceptionHandler这样的扩展点",它允许为特定(某种过滤支持)异常声明异常处理程序,从而为实际提供了很大的灵活性处理?"

gia*_*gia 5

您可以覆盖public void eventLoopException(Throwable exception)WorkbenchAdvisor

引用其javadoc:

当处理UI事件的代码抛出异常时,将调用此方法.在功能完善的应用程序中,永远不会调用此方法.实际上,当代码中存在触发未经检查的运行时异常的错误时,它就会 发挥作用 .