2015-07-19 58 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或超級用戶。 –

相關問題