Python bietet zwei sehr wichtige Funktionen zur Behandlung von Ausnahmen und Fehlern, die beim Ausführen von Python-Programmen auftreten. Mit dieser Funktion können Sie Python-Programme debuggen.
Wir können Leerlauf -> F1 öffnen, um das Dokument anzuzeigen. Es enthält viele Ausnahmetypen, wie im Bild gezeigt:
Eine Ausnahme ist ein Ereignis, das während der Programmausführung auftritt und die normale Ausführung des Programms beeinträchtigt.
Im Allgemeinen tritt eine Ausnahme auf, wenn Python das Programm nicht normal verarbeiten kann.
Ausnahmen sind Python-Objekte, die einen Fehler darstellen.
Wenn in einem Python-Skript eine Ausnahme auftritt, müssen wir sie abfangen und behandeln, sonst bricht das Programm die Ausführung ab.
Um Ausnahmen abzufangen, können try/exclusive-Anweisungen verwendet werden.
Die Try/Except-Anweisung wird verwendet, um Fehler im Try-Anweisungsblock zu erkennen, sodass die Except-Anweisung die Ausnahmeinformationen erfassen und verarbeiten kann.
Wenn Sie Ihr Programm nicht beenden möchten, wenn eine Ausnahme auftritt, versuchen Sie es einfach abzufangen.
Syntax:
Das Folgende ist die Syntax eines einfachen Versuchens....außer...anders:
try
:
#运行别的代码
except
:
#如果在try部份引发了'name'异常
except
,:
#如果引发了'name'异常,获得附加的数据
else
:
#如果没有异常发生
Das Arbeitsprinzip von try besteht darin, dass nach dem Start ein Versuch erfolgt Anweisung markiert Python den Kontext des aktuellen Programms, sodass Sie hierher zurückkehren können, wenn eine Ausnahme auftritt. Die try-Klausel wird zuerst ausgeführt, und was als nächstes passiert, hängt davon ab, ob während der Ausführung eine Ausnahme auftritt.
Wenn eine Ausnahme auftritt, wenn die Anweisung nach dem Versuch ausgeführt wird, springt Python zurück, um zu versuchen, die erste Ausnahmeklausel auszuführen, die der Ausnahme entspricht. Nachdem die Ausnahme behandelt wurde, durchläuft der Kontrollfluss die gesamte try-Anweisung (Es sei denn, es wird eine neue Ausnahme ausgelöst, wenn die Ausnahme behandelt wird).
#Wenn in der Anweisung nach dem Versuch eine Ausnahme auftritt, es aber keine passende Ausnahmeklausel gibt, wird die Ausnahme an den oberen Versuch oder an die oberste Ebene des Programms weitergeleitet (dadurch wird das Programm beendet und Drucken Sie die Fehlermeldung der Provinz aus).
#Wenn beim Ausführen der try-Klausel keine Ausnahme auftritt, führt Python die Anweisung nach der else-Anweisung aus (sofern eine else-Anweisung vorhanden ist) und der Kontrollfluss durchläuft dann die gesamte try-Anweisung.
Das Folgende ist ein einfaches Beispiel, es öffnet eine Datei, schreibt den Inhalt in die Datei und es tritt keine Ausnahme auf:
#!/usr/bin/python
try
:
fh
=
open
(
"testfile"
,
"w"
)
fh.write(
"This is my test file for exception handling!!"
)
except
IOError:
print
"Error: can't find file or read data"
else
:
print
"Written content in the file successfully"
fh.close()
Das obige Programmausgabeergebnis:
Written content
in
the
file
successfully
Hier ist ein einfaches Beispiel, es öffnet eine Datei in der Datei Der Inhalt wird geschrieben, aber die Datei hat keine Schreibberechtigung und es ist eine Ausnahme aufgetreten:
#!/usr/bin/python
try
:
fh
=
open
(
"testfile"
,
"r"
)
fh.write(
"This is my test file for exception handling!!"
)
except
IOError:
print
"Error: can't find file or read data"
else
:
print
"Written content in the file successfully"
Die Ergebnisse der obigen Programmausgabe:
Error: can't find
file
or
read data
Sie können „exclusive“ ohne jeden Ausnahmetyp verwenden, wie im folgenden Beispiel gezeigt:
try
:
You do your operations here;
......................
except
:
If there
is
any
exception, then execute this block.
......................
else
:
If there
is
no exception then execute this block.
Sie können dieselbe Ausnahmeanweisung auch verwenden, um mehrere Ausnahmemeldungen zu verarbeiten, wie unten gezeigt:
try
:
You do your operations here;
......................
except
(Exception1[, Exception2[,...ExceptionN]]]):
If there
is
any
exception
from
the given exception
list
,
then execute this block.
......................
else
:
If there
is
no exception then execute this block.
try- Die final-Anweisung führt den letzten Code aus, unabhängig davon, ob eine Ausnahme auftritt.
try
:
finally
:
#退出try时总会执行
raise
Hinweis: Das können Sie Verwenden Sie die Ausnahme-Anweisung oder die Final-Anweisung, jedoch nicht beide gleichzeitig. Die else-Anweisung kann nicht zusammen mit der final-Anweisung
#!/usr/bin/python
try
:
verwendet werden
fh
=
open
(
"testfile"
,
"w"
)
fh.write(
"This is my test file for exception handling!!"
)
finally
:
print
"Error: can't find file or read data"
Wenn die geöffnete Datei keine Schreibberechtigung hat, sieht die Ausgabe wie folgt aus:
Error: can't find
file
or
read data
#!/usr/bin/python
🎜>try
:
fh
=
open
(
"testfile"
,
"w"
)
try
:
fh.write(
"This is my test file for exception handling!!"
)
print
"Error: can't find file or read data"
Wenn eine Ausnahme im Try-Block ausgelöst wird, wird der finale Blockcode sofort ausgeführt.
Nachdem alle Anweisungen im „finally“-Block ausgeführt wurden, wird die Ausnahme erneut ausgelöst und der „exclusive“-Blockcode ausgeführt.
Der Inhalt des Parameters unterscheidet sich von der Ausnahme.
Eine Ausnahme kann Parameter enthalten, die als Ausgabeparameter für Ausnahmeinformationen verwendet werden können.
Sie können Ausnahmeparameter über die Ausnahmeanweisung wie folgt erfassen:
try
:
You do your operations here;
......................
except
ExceptionType, Argument:
You can
print
value of Argument here...
Von Variablen empfangene Ausnahmewerte sind normalerweise in der Ausnahmeanweisung enthalten. Variablen in Form von Tupeln können einen oder mehrere Werte erhalten.
Tupel enthält normalerweise eine falsche Zeichenfolge, eine falsche Zahl und eine falsche Position.
Das Folgende sind Beispiele für eine einzelne Ausnahme:
#!/usr/bin/python
# Define a function here.
def
temp_convert(var):
try
:
return
int
(var)
except
ValueError, Argument:
print
"The argument does not contain numbersn"
, Argument
# Call above function here.
temp_convert(
"xyz"
);
Die Ausführungsergebnisse von Das obige Programm lautet wie folgt:
The argument does
not
contain numbers
invalid literal
for
int
() with base
10
:
'xyz'
Wir können die Raise-Anweisung verwenden, um die Ausnahme selbst auszulösen
Das Format der Raise-Syntax lautet wie folgt:
raise
[Exception [, args [, traceback]]]
def
functionName( level ):
if
level <code>1
:
raise
"Invalid level!"
, level
# The code below to this would not be executed
# if we raise the exception
Hinweis: Um Ausnahmen abzufangen, muss die „Exception“-Anweisung dieselbe Ausnahme verwenden, um das Klassenobjekt oder die Zeichenfolge auszulösen.
Wenn wir beispielsweise die obige Ausnahme abfangen, lautet die „Exception“-Anweisung wie folgt:
try
:
Business Logic here...
except
"Invalid level!"
:
Exception handling here...
else
:
Rest of the code here...
Durch das Erstellen einer neuen Ausnahmeklasse können Programme ihre eigenen Ausnahmen benennen. Ausnahmen sollten normalerweise direkt oder indirekt von der Exception-Klasse erben.
Das Folgende ist ein Beispiel, das sich auf RuntimeError bezieht. Die Basisklasse ist RuntimeError, die verwendet wird, um weitere Informationen auszugeben, wenn eine Ausnahme ausgelöst wird.
Im Try-Anweisungsblock wird die Except-Blockanweisung nach der benutzerdefinierten Ausnahme ausgeführt. Die Variable e wird zum Erstellen einer Instanz der Networkerror-Klasse verwendet.
class
Networkerror(RuntimeError):
def
__init__(
self
, arg):
self
.args
=
arg
Nachdem Sie die obige Klasse definiert haben, können Sie die Ausnahme wie folgt auslösen:
try
:
raise
Networkerror(
"Bad hostname"
)
except
Networkerror,e:
print
e.args
Das obige ist der detaillierte Inhalt vonDetaillierte grafische Erläuterung der Python-Ausnahmebehandlungsmethoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!