2011-10-13 56 views
1

我正在使用Python 2.7。還有什麼例外,我們應該趕上ZipFile.open

基於文檔ZipFile.open,當我們調用ZipFile.open時,我無法找到應該捕獲哪個異常。

try: 
     with zipfile.ZipFile(zip_file_name, "r") as f_handle: 
      for data_file_name in f_handle.namelist(): 
       try: 
        with f_handle.open(data_file_name, "rU") as file_obj: 
         pass 
       except (RuntimeError), e: 
         pass 
    except (zipfile.BadZipfile, zipfile.LargeZipFile), e: 
     pass 
+0

當您嘗試打開僞造文件時會發生什麼?這應該給你一個提示。 – jathanism

+0

@jathanism,我的OP與捕獲哪個異常有關,而不是爲什麼我們應該捕獲異常。 – q0987

+0

@ q0987:他的意思是你可以憑經驗確定哪些異常是通過嘗試無效操作引發的,並查看拋出的是什麼。 –

回答

3

您是否需要檢查異常?你的代碼顯示RuntimeError:如果引發異常,你會怎麼做?一般來說,最好的辦法是不要發現異常,除非你知道你可能會對他們做些什麼。

相關問題