2015-05-12 41 views
0

情景
我有一個util文件夾,從文件夾,並返回文件的zip文件。這工作完美。模式或慣例創建一個文件並返回枚舉作爲結果

public static class MakeZip { 
    // returns zip file, null otherwise 
    public static File doZip(File folderToZip) 
} 

問題
來到時,我想控制可能出現的錯誤情況下,連接問題,空文件夾,壓縮失敗等等......我想知道創建文件並返回結果的最佳方式,這一點,我創建了一個枚舉

public static enum ZIP_RESULT { 
    OK, KO, EMPTY_FOLDER; 
} 

IDEAS
一)創建文件類屬性

private File zipFile; 

並返回ZIP_FILE枚舉doZip方法。

public ZIP_RESULT doZip(File folderToZip) 

B)修改File發送:

public ZIP_RESULT doZip(File folderToZip, File fileToZip) 

c)中 ????

問題
有規律可循的,公約或最佳實踐這種文件修改的枚舉預期的結果?我想是一個非常典型的場景...

回答

3

拋出異常。您可以擴展Exception或實施Throwable

何時使用異常的第三顆子彈描述你的情況描述here:即獲取生成 當資源無法例外:由於資源故障

例外。例如:系統內存不足或網絡連接失敗。客戶對資源故障 的響應是上下文驅動的。客戶可以在一段時間後重試操作 或僅記錄資源故障並使應用程序停止。

+2

這,我想說的是約定。 如果需要,你可以創建你自己的異常,期望你的枚舉在構造函數 'public MyException(Zip_Error_Enum val)(){}' – Mecon

+0

sweeet!我喜歡這種溶劑! –

0

這是我會做什麼,

,而不是這樣的:

public static File doZip(File folderToZip) 

,並有這樣的事情,而不是

public static Map.Entry<File,ZIP_RESULT> doZip(File folderToZip) 

所以你必須在這兩個數據Entry,您可以根據需要使用它們。

相關問題