


Detaillierte grafische Erläuterung der Python-Ausnahmebehandlungsmethoden
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:
Was ist eine Ausnahme?
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.
Ausnahmebehandlung
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.
Beispiel
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
Beispiel
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
Ausnahme ohne Ausnahmetyp verwenden
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.
Die Try-Exception-Anweisung auf die obige Weise erfasst alle auftretenden Ausnahmen. Dies ist jedoch kein guter Weg, da wir mit diesem Programm keine spezifischen abnormalen Informationen identifizieren können. Weil es alle Ausnahmen abfängt.
Ausnahme bei mehreren Ausnahmetypen verwenden
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-finally-Anweisung
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.
Ausnahmeparameter
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.
Instanzen
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'
Ausnahme auslösen
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...
Benutzerdefinierte Ausnahme
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen an? Uvicorn ist ein leichter Webserver, der auf ASGI basiert. Eine seiner Kernfunktionen ist es, auf HTTP -Anfragen zu hören und weiterzumachen ...

Wie erstellt in Python ein Objekt dynamisch über eine Zeichenfolge und ruft seine Methoden auf? Dies ist eine häufige Programmieranforderung, insbesondere wenn sie konfiguriert oder ausgeführt werden muss ...

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

In dem Artikel werden beliebte Python-Bibliotheken wie Numpy, Pandas, Matplotlib, Scikit-Learn, TensorFlow, Django, Flask und Anfragen erörtert, die ihre Verwendung in wissenschaftlichen Computing, Datenanalyse, Visualisierung, maschinellem Lernen, Webentwicklung und h beschreiben

Fastapi ...
