【问题标题】:Is it possible to get the error code returned by the operating system to the JVM when a FileNotFoundException is thrown? [duplicate]抛出 FileNotFoundException 时,是否可以获得操作系统返回给 JVM 的错误代码? [复制]
【发布时间】:2012-04-03 10:33:51
【问题描述】:

抛出FileNotFoundException异常时,是否可以得到操作系统返回给JVM的错误码?

我遇到的问题是,当文件被操作系统锁定时尝试打开文件上的输入文件流会导致抛出 FileNotFoundException,即使该文件确实存在。

如果我尝试使用一些用 C 编写的代码打开文件,操作系统会返回 winerror.h 中定义的 ERROR_SHARING_VIOLATION。但是在 JAVA 中会抛出 FileNotFoundException 并显示错误消息“该进程无法访问该文件,因为它正在被另一个进程使用。”

我想做的是在 try/catch 中添加一些逻辑,以便在遇到某些特定错误时重试打开文件,但我不知道如何深入 FileNotFoundException 并找到根本原因错误。我唯一的其他选择是检查错误消息描述,但这似乎不是正确的方法。

【问题讨论】:

    标签: java error-handling filenotfoundexception


    【解决方案1】:

    很遗憾没有。

    FileNotFoundException 没有细化它的子类,并且类本身没有特定的访问方法。这是一个常见问题,可能是因为标准 API 旨在独立于平台。

    解决方法通常是解析 getMessage() 返回的字符串,或者降级到原生级别并以特定于平台的方式解决它,例如 C。

    【讨论】:

      猜你喜欢
      • 2019-08-02
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2011-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-11-12
      • 2011-02-15
      相关资源
      最近更新 更多