2010-03-05 46 views

回答

19
try: 
    os.makedirs('C:\\test\\') 
except OSError: 
    pass 

您還可能要檢查的具體「已經存在」的錯誤(因爲OSError可能意味着別的東西,比如權限被拒絕 ...

import errno 
try: 
    os.makedirs('C:\\test\\') 
except OSError as e: 
    if e.errno != errno.EEXIST: 
     raise # raises the error again 
+0

請注意,'除了OSError as e'是python 2.6+特定語法。對於python <2.6 use',除了OSError,e'。 – nosklo 2010-03-05 00:55:18

+0

您應該*檢查原因在這種情況下。如果目錄已經存在,則可能是好的,但如果存在權限問題或磁盤已滿等情況,則需要給用戶一個錯誤 – 2010-03-05 00:59:29

+0

如果有'EnvironmentError',該怎麼辦? – ghostdog74 2010-03-05 02:47:27

-3

你可以嘗試/除?

try: 
    os.makedirs('C:\\test\\') 
except: pass 
+2

裸try-except(沒有指定例外)是一個不好的做法,應該避免,因爲它可以隱藏你不想隱藏的錯誤,比如'KeyboardInterrupt'或者'MemoryError' ...總是發現你的確切錯誤正在努力處理。 – nosklo 2010-03-05 00:54:08

+0

2.5以後KeyboadInterrupt等都來自BaseException。此外,OP只是想忽略錯誤... – ghostdog74 2010-03-05 01:18:33

+1

這並不重要,裸體除外條款可以規避任何例外情況。原始問題中重要的是如何忽略正確的異常,絕對不會忽略所有異常。 – u0b34a0f6ae 2010-03-05 02:06:04