Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Python-Ausnahmen und -Fehlern

Der Unterschied zwischen Python-Ausnahmen und -Fehlern

藏色散人
藏色散人Original
2019-07-03 09:25:455178Durchsuche

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

aus

try--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 freizugeben

try-exclusive-finally verwendet :

try:
    try_suite
except:
    do_except
finally:
    do_finally

1. 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ührt

try-exclusive-else-finally verwendet:

try:
    try_suite
except:
    do_except
else:
    do_else
finally:
    do_finally

1 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_suite

1 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: Ausnahmeklasse

Argumente: Tupel, das Ausnahmeinformationen beschreibt

Beispiel:

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 Ausnahmen

Standardausnahmen: 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' % e

Verwandte 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn