首页 > 解决方案 > 在 Eclipse 中访问 ResourceException?

问题描述

我在一个抛出 ResourceException 的 Eclipse 插件中做一些事情。反过来,我需要知道所涉及资源的路径是什么。

我可以通过 来做到这一点((ResourceStatus) caughtException.getStatus()).getPath(),但是然后我会收到警告Discouraged access: The type 'ResourceException' is not API(同样的警告ResourceStatus)。我应该忽略警告,还是有更好的方法让我获得路径?我只是担心这可能会在以后改变。

从技术上讲,我可以从异常消息中提取路径,但这感觉很糟糕,并且从人类可呈现的字符串中抓取数据倒霉:-/

标签: eclipse-plugin

解决方案


ResourceExceptionextendsCoreException这是官方 API 的一部分,所以你可以抓住它。

ResourceStatus实现IResourceStatus这又是一个官方API。

所以像:

catch (CoreException ex) {
  IStatus status = ex.getStatus();

  if (status instanceof IResourceStatus) {
    IPath path = ((IResourceStatus)status).getPath();

    ....
  }
}

IResourceStatusIStatus.getCode还包含为资源异常返回的错误代码的定义。


推荐阅读