2010-03-05 14 views

cevap

19
try: 
    os.makedirs('C:\\test\\') 
except OSError: 
    pass 
izni inkar gibi OSError, diğer şeyler anlamına gelebilir çünkü Ayrıca, belirli kontrol etmek isteyebilirsiniz

(hata "zaten var" ...

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

, "OSError olarak e" özelliğinin python 2.6+ özel sözdizimi olduğuna dikkat edin. Python <2.6 kullanımı 'OSError dışında, e'. – nosklo

+0

* Her zaman * nedenini kontrol et böyle durumlarda. Eğer dir zaten var ise, muhtemelen tamam, ama bir izin sorunu ya da disk dolu vb varsa, kullanıcı bir hata veriyorsanız, –

+0

Eğer "EnvironmentError" varsa ne olur? – ghostdog74

-3

sen?

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

çıplak istismar (istisnasız belirtmeksizin) kötü bir uygulamadır ve sakınmak istemediğiniz hataları gizleyebildiğinden, 'KeyboardInterrupt' veya 'MemoryError' gibi ... Her zaman tam olarak hata yakala İşe yarıyor. – nosklo

+0

2.5'ten ileride KeyboadInterrupt vs hepsi BaseException'dan geliyor. Ayrıca, OP sadece hataları göz ardı etmek istiyorum ... – ghostdog74

+1

Bu önemli değil, bir istisna dışında tüm istisnalar cahces cahces. Asıl sorudaki önemli olan, tüm istisnaları göz ardı etmemek, doğru istisnayı göz ardı etmemek. – u0b34a0f6ae

İlgili konular