Zusammenfassung:
Programmfehler können nicht behoben werden; wenn ein Programm auf einen Fehler stößt, wird es sofort beendet oder stürzt ab.
Gute Programmierer stellen sicher, dass ihr Code oder ihre Software Fehler/Ausnahmen, die während der Verwendung der Software auftreten können, ordnungsgemäß verarbeiten kann, ohne dass es zu Abstürzen oder unerwünschten Ergebnissen kommt. Stellen Sie sich vor, Sie schreiben Software für ein Finanzinstitut, die nur numerische Eingaben akzeptiert. Wenn der Benutzer für arithmetische Operationen Buchstaben anstelle von Zahlen eingibt, wird normalerweise ein Fehler ausgegeben und die Software stürzt aufgrund eines einzelnen Benutzers ab, wenn kein Mechanismus vorhanden ist Ort, an dem die Fehlerwörter behandelt werden. Das ist definitiv keine gute Sache – es ist schlecht fürs Geschäft, kann zu frustrierten Kunden führen und jemand könnte aufgrund von Inkompetenz seinen Job verlieren.
In diesem Artikel erfahren Sie, wie Sie am besten mit Fehlern in Ihrem Code umgehen, die durch Benutzerinteraktionen entstehen können. bleiben Sie dran.
Dieser Artikel ist geeignet für:
Nach der Lektüre dieses Artikels sollten die Leser in der Lage sein:
Fehler und Ausnahme werden oft synonym verwendet, haben aber technisch gesehen unterschiedliche Bedeutungen. In Python sind Error und Exception beide Unterklassen von BaseException, Dies weiter zeigt, dass sie, obwohl sie unterschiedlich sind, etwas gemeinsam haben.
Fehler können nicht behoben werden; wenn unser Programm auf einen Fehler stößt, wird es sofort beendet oder stürzt ab. Auch wenn Fehler zu erwarten sind, gibt es keine Möglichkeit, sie programmgesteuert zu behandeln. Einige Fehler sind unten aufgeführt:
SyntaxError
:Dies ist einer der häufigsten Fehlertypen, mit denen Programmierer konfrontiert sind. Er tritt auf, wenn der Code nicht der korrekten Python-Syntax folgt, und kann beim Parsen erkannt werden. Dies ist eine Frage, die sich leicht für Lernende oder Personen stellt, die von anderen Programmiersprachen auf Python umsteigen.
<code class="language-python">name = “Austin”; print(name)</code>
Dies führt zu SyntaxError
, da Anweisungen in Python nicht mit einem Semikolon enden.
IndentationError
:Dieser Fehler tritt auf, wenn Python-Code falsch eingerückt ist, und wird beim Parsen des Codes erkannt. Einrückung ist in Python sehr wichtig. Dies ist die einzige Möglichkeit in Python, Codeblöcke zu definieren, im Gegensatz zu den meisten Sprachen, die geschweifte Klammern verwenden.
<code class="language-python">name = “Austin”; print(name)</code>
Dieser Code führt aufgrund falscher Einrückung zu Fehlern. Es sollte sein:
<code class="language-python">active = True if (active): print(“The user is active”)</code>
Ausnahmen in Python treten zur Laufzeit auf. Im Gegensatz zu Fehlern können sie ordnungsgemäß behandelt oder programmgesteuert abgefangen werden, sodass unser Programm ohne Absturz weiterlaufen kann. Mit anderen Worten: Sie sind wiederherstellbar. Hier sind einige häufige Ausnahmen in Python:
Diese Arten von Ausnahmen sind Teil der Programmiersprache Python. Einige davon sind unten aufgeführt:
ValueError
:Dieser Fehler tritt auf, wenn ein ungültiger Parameter an eine Funktion übergeben wird, obwohl der Typ möglicherweise korrekt ist.
<code class="language-python">if (active): print(“The user is active”)</code>
Wenn wir aus dem obigen Codeausschnitt eine numerische Zeichenfolge an die Funktion übergeben, wird diese erfolgreich in eine Zahl konvertiert, andernfalls wird ValueError
erzeugt.
<code class="language-python">def str_num(num_string): return(int(string))</code>
TypeError
:Dieser Fehler wird ausgelöst, wenn ein ungeeigneter Typparameter an eine Funktion übergeben wird.
<code class="language-python">print(str_num(“123”)) #works perfectly print(str_num(“abc”)) #raises a ValueError</code>
Dies wird ausgelöst TypeError
.
IndexError
:Dieser Fehler tritt auf, wenn Sie versuchen, mit dem falschen Index auf einen Wert in einer Liste zuzugreifen.
<code class="language-python">def addition(num1, num2): return num1 + num2 # calling the function addition(5, A)</code>
Dies führt zu IndexError
, da my_list[2]
nicht zugänglich ist.
KeyError
:Dieser Fehler wird ausgelöst, wenn versucht wird, mit einem falschen oder nicht vorhandenen Schlüssel auf einen Wert in einem Wörterbuch zuzugreifen.
<code class="language-python">my_list = [“dog”, “cat”] my_list[2]</code>
Dies wird KeyError
auslösen.
Weitere integrierte Ausnahmen finden Sie hier.
Benutzerdefinierte Ausnahmen werden vom Programmierer definiert. Hier ermöglicht Python Programmierern, manuell Bedingungen zu definieren, die ein Programm während der Ausführung prüfen und bei Vorliegen einer Ausnahme auslösen soll. Sie können dies erreichen, indem Sie eine Klasse erstellen, die von der Klasse Exception
erbt.
Durch die Behandlung von Ausnahmen wird sichergestellt, dass unsere Softwareanwendungen eine vorhersehbare Leistung aufweisen, wenn bestimmte Fehler auftreten, die während des Anwendungslebenszyklus auftreten. In diesem Abschnitt erfahren Sie, wie Sie dies in der Programmierung umsetzen.
try-except
-Anweisungtry-except
-Anweisung bietet eine sichere Möglichkeit, mit Code umzugehen, der Fehler oder Ausnahmen auslösen kann. try
-Anweisungen umschließen problematischen Code oder try
-Klauseln; dies ist der Teil des Codes, der höchstwahrscheinlich dazu führt, dass das gesamte Programm schief geht, wenn er Eingaben vom Benutzer empfängt, die aus einer Datei lesen Nennen Sie einige Beispiele.
except
-Anweisung markiert den Anfang der except
-Klausel; dies ist der Rest des Codes, der in einen except
-Block eingeschlossen ist. Die except
-Klausel behandelt Ausnahmen, die innerhalb des try
-Blocks ausgelöst werden.
Lassen Sie mich Sie durch den Ausführungsworkflow führen. Ihr Python-Programm wird normalerweise ausgeführt, bis es den try
-Block erreicht, der den „problematischen“ Code enthält. Wenn zu diesem Zeitpunkt keine möglichen Fehler bei der Ausführung des Codes im try
-Block auftreten, wird der except
-Block übersprungen und fahren Sie fort, den Rest der Codebasis auszuführen. Wenn jedoch beim Ausführen von Code im try
-Block ein Fehler auftritt, springt die Steuerung unmittelbar nach der Erstellung des Ausnahmeobjekts zum except
-Block, wo der Fehler von der entsprechenden Ausnahmeklasse behandelt werden soll.
<code class="language-python">name = “Austin”; print(name)</code>
Aus dem obigen Codeausschnitt geht hervor, dass, wenn ein nicht numerischer Wert an das Programm übergeben wird, ein Ausnahmeobjekt erstellt und ValueError
ausgelöst wird. Die Steuerung springt sofort zum except
-Block und sucht dort nach der entsprechenden Ausnahmeklasse. Hier reicht die Klasse ValueError
aus. Fehler wurden korrekt behandelt. Wenn jedoch die richtige Klasse nicht gefunden wird, wechselt die Steuerung zum äußeren try
-Block (falls vorhanden) und wenn die Ausnahme immer noch nicht korrekt behandelt wird, stürzt das Programm ab.
except
-Anweisung, um mehrere Ausnahmeklassen zu behandelnKann mehrere Ausnahmeklassen prüfen und bestimmte Ausnahmen behandeln. Dieser Ansatz wird bevorzugt, wenn Sie nicht sicher sind, welche der mehreren Ausnahmen zur Codeausführung geführt hat. Siehe den Codeausschnitt unten.
<code class="language-python">active = True if (active): print(“The user is active”)</code>
Exception
ist eine direkte Unterklasse von BaseException
. Die Klasse Exception
ist die Basisklasse für alle nicht schwerwiegenden Ausnahmen.
In den meisten Fällen reicht die Klasse Exception
aus, um die meisten Ausnahmen zu verarbeiten, die während der Codeausführung ausgelöst werden.
<code class="language-python">if (active): print(“The user is active”)</code>
Auch wenn die Klasse Exception
nicht schwerwiegende Ausnahmen verarbeiten kann, ist es am besten, sie mit Vorsicht zu verwenden. Verwenden Sie die richtige Exception
-Klasse, da diese sich besser zum Debuggen eignet und die Lesbarkeit des Codes verbessert.
finally
-AnweisungDer Teil des Codes, der in einen finally
-Block eingeschlossen ist, wird unabhängig davon ausgeführt, ob eine Ausnahme auftritt. Dadurch eignet es sich für Bereinigungsaufgaben; das Schließen von Dateien und das Freigeben von Speicherressourcen.
<code class="language-python">def str_num(num_string): return(int(string))</code>
Durch das Erstellen benutzerdefinierter Ausnahmen können Programmierer bestimmte Ausnahmen für Softwareprogramme auslösen. Dazu können besondere Bedingungen oder Grenzfälle gehören, die sich nachteilig auf die Funktionalität eines bestimmten Softwareprogramms auswirken können. Definierte benutzerdefinierte Ausnahmeklassen müssen von der Klasse Exception
erben.
<code class="language-python">print(str_num(“123”)) #works perfectly print(str_num(“abc”)) #raises a ValueError</code>
Der obige Codeausschnitt zeigt, wie benutzerdefinierte Ausnahmen erstellt und verwendet werden. Je nach Anwendungsfall kann es auf komplexere Weise eingesetzt werden.
Warum die Fehler-/Ausnahmebehandlung wichtig ist
„Vertraue dem Benutzer nicht“ ist ein weit verbreitetes Sprichwort unter Softwareentwicklern, das bekräftigt, dass Sie nicht ganz sicher sein können, wie Ihre Benutzer mit Ihrer Softwareanwendung interagieren und was Sie tun , der Programmierer, tun, wenn er Ihre Anwendung schreibt. Es gibt noch einige andere Eckfälle, an die möglicherweise nicht gedacht wurde. Nachfolgend werden einige wichtige Gründe für eine ordnungsgemäße Fehler-/Ausnahmebehandlung erläutert:
Ausnahmebehandlung verwenden:
versuchen Sie: drucken(10/0) außer ZeroDivisionError: print("Kann nicht durch Null dividieren!")
print(divide(10, 2)) # Ausgabe: 5.0 print(divide(10, 0)) # Ausgabe: Division durch Null ist nicht erlaubt!
Fördern Sie, prägnanten Code zu schreiben
Die Ausnahmebehandlung erleichtert das Lesen, Debuggen und Verwalten Ihres Codes, indem die normale Logik von der Fehlerbehandlungslogik getrennt wird.
Erleichtert das Debuggen
Mit detaillierten Fehlermeldungen und Ausnahmeprotokollen können Entwickler Probleme in ihrem Code schnell identifizieren und beheben.
Beispiel:
versuchen Sie: Ergebnis=10/0 außer Ausnahme als e: logging.error("Ein Fehler ist aufgetreten", exc_info=True)
Fazit
In der Programmiersprache werden Fehler und Ausnahmen am häufigsten synonym verwendet. Der Hauptunterschied zwischen Fehlern und Ausnahmen in Python besteht darin, wie sie sich auf unsere Softwareprogramme auswirken. Fehler wie Syntaxfehler und Einrückungsfehler können ein Programm zum Absturz bringen, wenn der Interpreter es analysiert. Andererseits können Ausnahmen das Programm zur Laufzeit zum Absturz bringen, wenn sie nicht korrekt behandelt werden. Benutzerdefinierte Ausnahmen erweitern die Fehlerbehandlungsmöglichkeiten, indem sie es Programmierern ermöglichen, Ausnahmeklassen zu definieren, die für eine bestimmte Softwareanwendung spezifisch sind.
Die Fehlerbehandlung ist auch für das Debuggen sehr wichtig. Dadurch können wir erkennen, warum in der Anwendung Fehler auftreten, und Software-Betreuern so genügend Informationen zur Verfügung stellen, um das Problem zu lösen. Stellen Sie immer sicher, dass die Ausnahmebehandlung ordnungsgemäß in Ihrem Code eingeführt wird, um die Robustheit Ihrer Softwareanwendung sicherzustellen.
Vielen Dank fürs Lesen.
Das obige ist der detaillierte Inhalt vonFehlerbehandlung in Python: Best Practices. Erfahren Sie, wie Sie Ausnahmen effektiv behandeln. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!