2016-05-12 32 views
-1

我有一臺RedHat 7機器,並希望獲得駐留在Ext4上的常規文件的大小。FileNotFoundException以外的哪些異常可以拋出Files.size(Path)?

Files.size()聲明IOException。除FileNotFoundException之外,還可能拋出哪些其他例外?

使用Java 7和nio包。

+1

爲什麼這麼在意?該文檔聲明:'IOException'或'SecurityException',所以你只能依賴它。其餘的是實現細節。 – Tunaki

+0

我知道如何處理FileNotFoundException(跳過文件),並且想要了解是否應該跳過其他異常或無限重試 – Tim

回答

0

此方法不能拋出FileNotFoundException。

它可以拋出一個FileSystemException,一:

  • NoSuchFileException,
  • AccessDeniedException異常,
  • 他人。

它也可以拋出一個IOException這意味着一個I/O級別的錯誤(可能是磁盤問題),而不是文件系統級別的錯誤。

總之,對付要麼是最好的方法:

try { 
    Files.size(...); 
} catch (FileSystemException e) { 
    // deal with fs level error 
} catch (IOException e) { 
    // deal with I/O level error 
} 
+0

如何知道它不能拋出FNFE? javadoc沒有對它說任何事情...... – assylias

+1

@assylias沒有任何JSR 203方法可以拋出異常;在JSR 203中,這個異常被'FileSystemException'和子類取代,包括'NoSuchFileException'等等。 – fge

相關問題