Python 2.7 Ausnahmebehandlung syntax
Ich bin etwas irritiert über die try-exception-Verwendung in Python 2.7.
try:
raise valueError("sample value error")
except Exception as e:
print str(e)
try:
raise valueError("sample value error")
except Exception,exception:
print str(exception)
try:
raise valueError("sample value error")
except exception:
print str(exception)
try:
raise valueError("sample value error")
except Exception:
print str(Exception) # it prints only the object reference
können einige mir helfen zu verstehen, die über Nutzung?
- Wenn Sie möchten, zu fangen, eine Ausnahme zu machen und etwas damit zu tun, verwenden Sie Ihre erste Beispiel. Das Letzte Beispiel ist, wenn Sie nicht wirklich Pflege über die Erfassung der Fehler, die Sie nur wissen wollen, wenn eine Ausnahme geworfen wurde. Das Letzte Beispiel ist eher wie Ablaufsteuerung. Das erste Beispiel ist mehr zu sehen, warum ein bestimmter Aufruf fehlgeschlagen.
- Bitte konzentrieren Sie Ihre Frage. Sie scheinen zu Fragen, für Nachhilfe, die etwas mehr Breite als StackOverflow Zweck. Sollten Sie die Ausführung jedes dieser Beispiele untersuchen Sie die Ausgabe, und vergleichen Sie diese mit den Beschreibungen aus Ihrem lehrbuch und Online-Materialien. Wenn Sie immer noch nicht verstehen, ein bestimmtes Ergebnis zu posten, Beispiel, die Ausgabe, und eine Beschreibung, wo du bist verwirrt. Als start, beachten Sie, dass die "Ausnahme" ist eine sehr einfache Klasse, als Teil der Python-Sprache; "Ausnahme" ist eine Globale variable.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einige Konzepte, die helfen, verstehen Sie den Unterschied zwischen den alternativen Varianten der
except
Varianten:except Exception, e
– Dies in einer älteren Variante, jetzt veraltet, ähnlichexcept Exception as e
except Exception as e
– Catch-Ausnahmen von der ArtException
(oder eine Unterklasse) und speichern Sie in der variablee
für die weitere Verarbeitung, messaging oder ähnlicheexcept Exception
– Fangen Sie die Ausnahmen von der ArtException
(oder eine Unterklasse), aber ignorieren Sie den Wert/die Informationen der Ausnahmeexcept e
– Gibt mir eine Zusammenstellung der Fehler, nicht sicher, ob das mit der python version, aber wenn dem so ist, sollte/würde bedeuten, dass Sie kümmern sich nicht um die Art von Ausnahme, sondern wollen auf Informationen zugreifen, die in esexcept
– Fängt jede Ausnahme, und ignorieren Sie die Informationen über die AusnahmeWelche zu verwenden, hängt von vielen Faktoren ab, aber wenn Sie nicht brauchen, die Informationen, die in der Ausnahme gibt es keine Notwendigkeit, präsentieren die variable zum abfangen dieser Informationen.
In Bezug auf die Art der
Exception
zu fangen, achten Sie darauf, fangen die genaue Art von Ausnahmen. Wenn Sie schreiben einen Allgemeinen catch-it-all, könnte es richtig zu verwendenexcept Exception
, aber in der Beispiel-Fall, die Sie gegeben haben, die ich wählen würde, tatsächlich mitexcept ValueError
direkt. Dies würde es ermöglichen, für die möglicherweise andere Ausnahmen ordnungsgemäß behandelt werden, auf einer anderen Ebene Ihres Codes. Der Punkt ist, don ' T catch-Ausnahme, die Sie nicht bereit sind, zu handhaben.Wenn Sie möchten, können Sie Lesen Sie mehr auf python 2.7 Ausnahmebehandlung oder verfügbar python 2.7-Ausnahme in der offiziellen Dokumentation.
Benutze ich:
Wenn ich will, zu erklären, eine spezifische Fehler-und
Wenn ich nicht wirklich interessieren, oder
except: pass
,except: return
etcVerwenden Sie das format