2015-07-19 54 views
3

有没有一种系统独立的方式来检测IOException何时与“设备上没有剩余空间”错误相关? IOException没有办法。我应该把它当作一个通用的I/O错误而不解释用户为什么?或者我应该简单地向用户显示异常消息字符串(这可能太过技术性)?检测设备错误上没有剩余空间

回答

2

Java的,不同于其他语言,如C#,不跟踪IOException的原因,但它使用的子类,以更好地指定异常的动机,例如FileNotFoundExceptionIOException一个子类。

一般来说,指定最常见子印刷线路的原因并在IOException前添加一个通用描述的错误消息以方便用户。

try { 
    ... 
} catch (FileNotFoundException e) { 
    System.out.println("File not found: " + e.getMessage()); 
} catch (.. other subclasses ..) { 
    ... 
} catch (IOException e) { // anything else 
    System.out.println("I/O Exception: " + e.getMessage()); 
    e.printStackTrace(); 
} 
+0

我很害怕那个:-(谢谢。 –

1

作为例外处理部分,你可以检查使用由File类提供这些方法的可用磁盘空间:

public long getTotalSpace() 
public long getFreeSpace() 
public long getUsableSpace() 

更多细节可以在此相关的问题中找到:How to find how much disk space is left using Java?

+0

我不知道......可能不可靠。有很多原因可能导致无空格左错误,比如配额超标。而在ext2/3上/ 4文件系统可以保留一些块f或超级用户。 –

相关问题