Wenn Sie nur ein try-except ohne Behandlung der Ausnahme tun wollen, wie tun Sie es in Python?
Ist die folgende Vorgehensweise die richtige?
try:
shutil.rmtree(path)
except:
pass
Wenn Sie nur ein try-except ohne Behandlung der Ausnahme tun wollen, wie tun Sie es in Python?
Ist die folgende Vorgehensweise die richtige?
try:
shutil.rmtree(path)
except:
pass
Dies ist zwar kein Try-Except, aber dennoch eine weitere Möglichkeit, mit Ausnahmen umzugehen, wenn objektorientierte Programmierung Ihr Ding ist:
class MyExceptionHandler:
def __enter__(self):
... # Do whatever when "with" block is started
return self
def __exit__(self, exc_type, exc_value, tb):
return True
Und dann zum eigentlichen Code:
with MyExceptionHandler():
... # Code that may or may not raise an exception
shutil.rmtree(path)
Wie funktioniert das?
__enter__
wird bei der Eingabe der with
Block.__exit__
wird beim Verlassen des Programms with
Block
True
um die mögliche Ausnahme zum Schweigen zu bringen.None
(oder etwas, das als falsch angesehen wird), um die potenzielle Ausnahme nicht zum Schweigen zu bringen.Abschließend sei gesagt, dass Sie try-except bevorzugen. Dies kann nützlich sein, wenn Sie mehr Abstraktion als üblich benötigen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
17 Stimmen
Seltsam, dass es bis jetzt niemand erwähnt hat (ich habe es in meiner Antwort getan), aber für diese spezielle Funktion können Sie einfach Folgendes tun
shutil.rmtree(path, ignore_errors=True)
. Dies gilt jedoch nicht für die meisten Funktionen.11 Stimmen
Wichtig zu lesen, wenn man über das Ignorieren von Ausnahmen nachdenkt: Warum ist "except: pass" eine schlechte Programmierpraxis?
6 Stimmen
Stellen Sie sich vor, dies im wirklichen Leben zu tun. try: get_cash('$1000') except: pass # meh, es wird wahrscheinlich gut sein