Heim > Artikel > Backend-Entwicklung > Der Unterschied zwischen Python-Ausnahmen und -Fehlern
Fehler- und Ausnahmekonzepte
Fehler:
1. Syntaxfehler: Der Code funktioniert entspricht nicht der Interpreter- oder Compilersyntax
2. Logikfehler: Unvollständige oder illegale Eingabe oder Berechnungsproblem
Ausnahme: Tausende von Objekten erscheinen während der Ausführung, was dazu führt, dass das Programm nicht ausgeführt werden kann
1. Das Programm stößt auf Logik- oder Algorithmusprobleme
2. Computerfehler während des Betriebs (nicht genügend Speicher oder IO-Fehler)
Der Unterschied zwischen Fehlern und Ausnahmen
Fehler:
Syntax- oder Logikfehler, bevor der Code ausgeführt wird,
Grammatikfehler müssen vor der Ausführung geändert werden, Logikfehler können nicht geändert werden
Ausnahmen sind unterteilt in zwei Schritte:
1. Ausnahmegenerierung, ein Fehler wird erkannt und der Interpreter betrachtet ihn als Ausnahme und eine Ausnahme wird ausgelöst
2. Ausnahmebehandlung, Ausnahmen abfangen, ignorieren oder Beenden des Programms zur Behandlung von Ausnahmen
Häufige Fehler in Python
Häufige Fehler:
unter ipython 1. a: NameError
Direkter Verweis auf
wenn eine Variable nicht definiert ist 2. wenn wahr: Syntaxfehler
Grammatikfehler
3. f = Open ('1.txt'): IOERROR
Beim Versuch um eine Datei zu öffnen, die nicht existiert
4. 10/0: ZeroDivisionError
5. a = int('dd'): ValueError
Bei der erzwungenen Ausführung ist ein Fehler aufgetreten Typkonvertierung
try- -außer Ausnahmebehandlung (1)
try-außer: Ausnahmebehandlung
try: try_suite except Exception [, e]: exception_block
1.try wird verwendet, um Fehler in try_suite zu erfassen und zu übergeben bis zur Behandlung von Ausnahmen
2.Exception wird zur Behandlung von Ausnahmen verwendet. Wenn die Ausnahmebehandlung mit dem Festlegen der erfassten Ausnahme übereinstimmt, verwenden Sie „Exception_block“, um die Ausnahme zu behandeln
Beispiel:
try: a except Exception, e: print e
Try-Exception-Capture-Ausnahmeanalyse:
Fall 1:
try: undef except: print 'catch an except'
Fall 2:
try: if undef except: print 'catch an except'
Fall 1: Die Ausnahme kann abgefangen werden, da es sich um einen Laufzeitfehler handelt
Fall 2: Die Ausnahme kann nicht abgefangen werden, da es sich um einen Syntaxfehler handelt. Führen Sie den vorherigen Fehler aus.
Fall 3:
try: undef except NameError, e: print 'catch an except', e Case 4: try: undef except IOError, e: print 'catch an except', e
Fall 3: Die Ausnahme kann aufgrund des Catch abgefangen werden NameError-Ausnahme ist gesetzt
Fall 4: Die Ausnahme kann nicht abgefangen werden, da der IOError gesetzt ist und nicht behandelt wird. NameError
versuchen Sie es mit Ausnahme der Ausnahmebehandlung (2)
try-exclusive: mehrere Ausnahmen behandeln
try: try_suite except Exception1 [e]: exception_block1 except Exception2 [e]: exception_block2 except ExceptionN [e]: exception_blockN
try-exclusive--else use
try: try_suite except Exception1 [e]: exception_block1 else: none_exception
Wenn es keine Ausnahme gibt, führen Sie den Code in der else-Anweisung
austry--finally-Anweisung
try-finally-Anweisung:
try: try_suite finally: do_finally
1 Wenn try Die Anweisung erfasst den Fehler nicht und der Code führt die do_finally-Anweisung
2. Wenn die try-Anweisung den Fehler erfasst, führt das Programm zuerst die do_finally-Anweisung aus und übergibt dann den erfassten Fehler zur Verarbeitung an den Python-Interpreter try-finally-Anweisung: Regel: try-finally führt den Final-Code aus, unabhängig davon, ob eine Ausnahme erkannt wird Funktion: Bietet einen Bereinigungsmechanismus für Ausnahmebehandlungsereignisse, um Dateien zu schließen oder Systemressourcen freizugebentry-exclusive-finally verwendet :
try: try_suite except: do_except finally: do_finally1. Wenn die Try-Anweisung die Ausnahme nicht abfängt, führen Sie sie nach der Ausführung des Try-Codesegments aus.2 Wenn der Try die Ausnahme abfängt, führen Sie sie zuerst aus, außer behandelt die Fehler und wird dann schließlich ausgeführttry-exclusive-else-finally verwendet:
try: try_suite except: do_except else: do_else finally: do_finally1 Wenn die try-Anweisung die Ausnahme nicht abfängt, führen Sie nach der Ausführung des try-Codeblocks den else-Befehl aus Codeblock, schließlich ausführen. 2. Wenn der Versuch eine Ausnahme abfängt, führen Sie ihn zuerst aus, um den Fehler zu behandeln, und führen Sie ihn dann schließlich aus.mit der Anweisung mit der Anweisung: with context [as var]: with_suite1 Die with-Anweisung wird verwendet, um die try-exclusive-finally-Anweisung zu ersetzen, was den Code prägnanter macht 2. Der Kontextausdruck gibt ein Objekt 3.var zurück, um das Kontextrückgabeobjekt, einen einzelnen Rückgabewert oder ein Tupel zu speichern;4.with_suite verwendet die Variable var zur Bearbeitung des Kontextrückgabeobjekts ...
Raise and Assertion
Raise-Anweisung Raise-Anweisung wird verwendet, um aktiv Ausnahmen auszulösen Grammatikformat: raise [ Ausnahme [, Argumente]]Ausnahme: AusnahmeklasseArgumente: Tupel, das Ausnahmeinformationen beschreibtBeispiel:raise TypeError raise TypeError, 'Test Error' raise IOError, 'File Not Exist'assert-Anweisung
Assertion-Anweisung: Die Assertion-Anweisung wird verwendet, um zu prüfen, ob der Ausdruck wahr ist, wird ein AssertionError ausgelöst; Grammatikformat: Assert-Ausdruck [, Argumente]Ausdruck: Ausdruck Argumente: Beschreibungsinformationen der Beurteilungsbedingungen Beispiel:
assert 7==6 assert 0, 'Test Error'Python-Standard und -Benutzerdefiniert AusnahmenStandardausnahmen: in Python integrierte Ausnahmen, Programmausführung bereits vorhanden Benutzerdefinierte Ausnahmen: 1. Python ermöglicht benutzerdefinierte Ausnahmen, um abnormale Situationen zu beschreiben, die nicht in Python enthalten sind 2. Benutzerdefinierte Ausnahmen müssen die Exception-Klasse erben 3. Benutzerdefinierte Ausnahmen können nur aktiv ausgelöst werden Benutzerdefinierte Ausnahmebeispiel:
class FileError(IOError): pass raise FileError, 'Test FileError' class CustomError(Exception): def __init__(self, info): Exception.__init__(self) self.errorinfo = info def __str__(self): return 'CustomError: %s' % self.errorinfo try: raise CustomError('test CustomError') except CustomError, e: print 'Error Info : %s' % eVerwandte Empfehlungen: "
Python-Tutorial
"Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Python-Ausnahmen und -Fehlern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!