在 Eclipse 中访问 ResourceException?

Accessing ResourceException in Eclipse?

我正在 Eclipse 插件中执行某些操作,该插件抛出 ResourceException。我反过来需要知道所涉及资源的路径是什么。

我可以通过 ((ResourceStatus) caughtException.getStatus()).getPath() 执行此操作,但是我会收到 Discouraged access: The type 'ResourceException' is not API 的警告(ResourceStatus 的警告相同)。我应该忽略警告,还是有更好的方法让我找到路径?我只是担心这以后可能会改变。

技术上我可以从异常的消息中提取路径,但这感觉很恶心并且从人类可呈现的字符串中抓取数据还算幸运:-/

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

ResourceStatus 实现了 IResourceStatus,这又是官方的 API。

所以像这样:

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

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

    ....
  }
}

IResourceStatus 还包含了 IStatus.getCode returns 资源异常的错误代码的定义。