以编程方式确定IOException的原因?

Ube*_*per 8 java file-io

有没有办法以编程方式区分导致IOException的原因?例如,如果在写入期间发生错误,Java将抛出IOException.如果磁盘空间不足,有人断开网络驱动器或其他东西,我该如何判断是否存在违反访问权限的情况?

我无法真正解析消息,因为似乎没有任何标准化的消息格式,Sun(或者我现在认为的Oracle)似乎没有任何标准格式.

(我需要使用Java来修复一个非常破碎的系统.)

fin*_*nnw 5

不幸的是,Java没有.NET的等价物System.Runtime.InteropServices.Marshal.GetHRForException().只有在异常是子类的实例时才会告诉它是什么类型的I/O错误,例如FileNotFoundException.