Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
mcdwerner
User
Beiträge: 113 Registriert: Donnerstag 7. Juli 2011, 14:27
Mittwoch 23. Mai 2012, 11:46
Hallo!
Was mache ich wenn mir das Exception-Handling "zu grob" ist?
Beispiel:
Code: Alles auswählen
try:
os.symlink("mypath", "mylink")
except OSError: #hier würde ich gerne nur einen bestimmten Fehler abfangen: Errno 17 File Exists
"handle exception"
Kann ich das except-statement noch "feiner" angeben? (Hab schon nach "Errno" etc. gegoogelt aber leider nichts passendes gefunden.
Vielen Dank!
deets
Mittwoch 23. Mai 2012, 12:05
Nein, die Exception-Hierarchie gibt das nicht her. Was du aber machen kannst ist
Code: Alles auswählen
try:
... # tu was
except IOError, e:
if e.errno != 17: # keine Ahnung ob das errno ist, aber so ungefaehr
raise # einfach weiterschmeissen
# behandeln
BlackJack
Mittwoch 23. Mai 2012, 12:09
Und statt der 17 könnte man die entsprechende Konstante aus dem `errno`-Modul verwenden, damit es lesbarer und portabler ist.
mcdwerner
User
Beiträge: 113 Registriert: Donnerstag 7. Juli 2011, 14:27
Mittwoch 23. Mai 2012, 12:28
Danke Schön!
So kann ich mir den Fehler sogar ausgeben lassen und weitermachen:
Code: Alles auswählen
try:
os.symlink("mypath", "mylink")
except OSError, e:
print os.strerror(e.errno)