Heim Backend-Entwicklung Python-Tutorial Was sind die Ausnahmen in Python? Detaillierte Einführung in Ausnahmen in Python

Was sind die Ausnahmen in Python? Detaillierte Einführung in Ausnahmen in Python

Sep 26, 2018 pm 03:54 PM

Der Inhalt dieses Artikels befasst sich mit den Ausnahmen in Python. Die detaillierte Einführung von Ausnahmen in Python hat einen gewissen Referenzwert. Ich hoffe, dass sie für Sie hilfreich ist.

Es gibt zwei Arten von Ausnahmen in Python: 1) Syntaxfehler, der Code kann nicht ausgeführt werden, wenn er die Syntaxerkennung des Python-Interpreters nicht besteht, 2) Ausnahmen, Fehler, die während der Ausführung erkannt werden Das Python-Programm wird als Ausnahme bezeichnet. Wenn keine Ausnahmebehandlung durchgeführt wird, wird das Programm beendet und es werden Ausnahmeinformationen abgefragt, z. B.: ① Typkonvertierungsausnahme beim Konvertieren einer Zeichenfolge in eine Zahl, ② Ausnahme „Datei existiert nicht“ beim Lesen der Datei, ③ Ausnahme „Host nicht erreichbar“ während der Netzwerkverbindung. .. ·Warten. Wenn in einem Python-Skript eine Ausnahme auftritt, müssen wir diese abfangen und behandeln, andernfalls bricht das Programm die Ausführung ab. Schließlich möchte niemand, dass das von ihm verwendete Programm plötzlich abstürzt

1. Syntaxfehler

Python-Syntax Fehler sind ein Problem, auf das viele Anfänger häufig stoßen. Diese Art von Fehlern ist relativ gering. Sie können solche Fehler reduzieren, indem Sie den Code ein paar Mal eingeben

>>> if Trur
  File "<stdin>", line 1
    if Trur
          ^
SyntaxError: invalid syntax
>>> print("as"))
  File "<stdin>", line 1
    print("as"))
               ^
SyntaxError: invalid syntax
Nach dem Login kopieren

Zum Beispiel: Ein solcher Fehler ist ein Grammatikfehler. In der if-Anweisung am Ende von Zeile 1 fehlt „:“ und am Ende von Zeile 6 steht „zu viel „)“

2. Ausnahmen

1) Während der Laufzeit erkannte Fehler werden Ausnahmen genannt und die Syntaxerkennung von Python kann solche Fehler nicht erkennen.

>>> int("aa")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: &#39;aa&#39;
>>> f = open("aaa.txt","r")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: &#39;aaa.txt&#39;
Nach dem Login kopieren

In der ersten und fünften Zeile treten Ausnahmen auf. Sehen Sie sich die Ausnahmen an. Ausgabeinformationen, wie gezeigt unten

2) Pythons Standard-Ausnahmeklasse

BaseException ist die Basis Klasse aller Ausnahmen, und Exception ist die Basisklasse aller regulären Fehler

Andere Die Ausnahmeklassen von Python werden nicht einzeln beschrieben. Sie können Baidu anzeigen

3. Ausnahmebehandlung

Um die Robustheit des Programms zu verbessern und zu verhindern, dass es abstürzt, wenn eine Ausnahme auftritt, ist eine Ausnahmebehandlung erforderlich erforderlich

1) try-exclusive: Anweisung

① Die einfachste Ausnahmebehandlungsanweisung lautet wie folgt, wenn der try-Anweisungsblock an Tritt eine Ausnahme auf, werden die folgenden Anweisungen nicht mehr ausgeführt (Zeile 3), die Ausnahme wird von „außer“ abgefangen und das Programm wird nach der Ausführung des Anweisungsblocks in „außer“ (z. B. Zeile 6) weiter abwärts ausgeführt. Hinweis: Auf Except folgt standardmäßig nicht der Ausnahmetyp

try:
    int("aaa")
    print("---aaa---")
except:
    print("出现异常-->英文字母不能转换为数字")
print("----------")
# 输出结果
出现异常-->英文字母不能转换为数字
----------
Nach dem Login kopieren

② Wenn wir verschiedene Ausnahmen abfangen müssen Ausnahmen, um dies zu erreichen. Wenn Sie Ausnahmeinformationen benötigen, können Sie das Ausnahmeobjekt über den Variablennamen as abrufen, z. B. Zeile 7

try:
    nu = int("100")
    print("转换后的值nu:", nu)
    i = 1 / 0
except ValueError:
    print("出现异常-->英文字母不能转换为数字")
except ZeroDivisionError as e:  # 通过 as 变量名 获取异常的对象
    print("出现异常-->除数不能为零")
    print("异常的提示信息-->", e)
except:
    pass
print("----------")


# 输出结果
转换后的值nu: 100
出现异常-->除数不能为零
异常的提示信息--> division by zero
----------
Nach dem Login kopieren

③. Wenn wir mehrere Ausnahmen gleichzeitig drücken müssen, kann die Verarbeitungsmethode verwendet werden, außer (ValueError, [ZeropisionError [, NameError]]):

try:
    i = 1 / 0
    nu = int("aa")
except (ValueError, ZeroDivisionError) as e:
    print(e)
except:
    pass
print("----------")


# 输出结果
division by zero
----------
Nach dem Login kopieren

2) try-exclusive-else- „finally“-Anweisung

① Wenn die „final“-Anweisung in „try-exclusive-else-finally“ erscheint, werden die Anweisungen im „finally“-Anweisungsblock unabhängig davon ausgeführt, ob eine Ausnahme auftritt, während die Anweisungen in the else wird nur ausgeführt, wenn keine Ausnahme auftritt

Wenn eine Ausnahme auftritt, ist try-exclusive-else-finally wie folgt

try:
    i = 1 / 0
    print("没有出现异常i值", i)
except Exception as e:
    print("出现异常-->", e)
else:
    print("没有出现异常-->执行else")
finally:
    print("不管是否出现异常,这里的语句一定会被执行")


# 输出结果
出现异常--> division by zero
不管是否出现异常,这里的语句一定会被执行
Nach dem Login kopieren

Wenn keine Ausnahme auftritt, lautet try-exclusive-else-finally wie folgt:

try:
    i = 1 / 1
    print("没有出现异常i值", i)
except Exception as e:
    print("出现异常-->", e)
else:
    print("没有出现异常-->执行else")
finally:
    print("不管是否出现异常,这里的语句一定会被执行")


# 输出结果
没有出现异常i值 1.0
没有出现异常-->执行else
不管是否出现异常,这里的语句一定会被执行
Nach dem Login kopieren

② Es gibt drei Formen: 1) versuche-außer-endlich 2) versuche-außer-else 3) versuche-endlich. Der Code wird hier nicht angezeigt

4. Ausnahmezustellung

Wenn in der Anweisung, in der die Ausnahme auftritt, keine Anweisung zur Behandlung der Ausnahme vorhanden ist Tritt auf, wird die Ausnahme nach oben gehen. Schichten durchlaufen, bis eine Anweisung gefunden wird, die eine Ausnahme behandelt, oder der Python-Interpreter das Programm beendet.

def test2():
    int("aa")

def test1():
    test2()

try:
    test1()
except Exception as e:
    print(e)
print("-----------")


# 输出结果
invalid literal for int() with base 10: &#39;aa&#39;
-----------
Nach dem Login kopieren

Wie oben, wenn Wenn in Zeile 2 von test2 eine Ausnahme auftritt, wird sie in Zeile 5 weitergeleitet. Sie wird an der Anweisung übergeben, die test2 aufruft. Es gibt hier noch keine Ausnahmebehandlungsanweisung. Sie wird weiterhin an die obere Ebene übergeben und von außer at erfasst Zeile 8

5. Ausnahme auslösen

1) Eine von Python definierte Ausnahme auslösen

Sie können eine Ausnahme auslösen, indem Sie den Ausnahmetyp erhöhen. Die ausgelöste Ausnahme wird auch von außer abgefangen. Wie unten gezeigt, Zeile 4

age = 500
try:
    if age < 0 or age > 200:
        raise ValueError("age范围0-200")
    print("age", age)
except ValueError as e:
    print("出现异常-->", e)
# 输出结果
出现异常--> age范围0-200
Nach dem Login kopieren

2) Eine benutzerdefinierte Ausnahme auslösen

抛出自定义异常首先得有个自定义的异常类,注:自定义的异常必须直接或间接的继承Exception基类

class MyException(Exception):  # 自定义异常类
    def __init__(self, msg):
        self.msg = msg


age = 500
try:
    if age < 0 or age > 200:
        raise MyException("age范围0-200")  # 抛出自定义异常
    print("age", age)
except MyException as e:
    print("出现异常-->", e)


# 输出结果
出现异常--> age范围0-200
Nach dem Login kopieren

当然自定义异常类也可以拥有许多的功能,就得看需求添加啦

6、在异常处理中抛出异常

有某需求:当捕获到异常时处理完后想继续抛出异常.....

在except中用raise可以抛出当前异常

try:
    i = 1 / 0  # 异常的语句
except Exception as e:
    print("出现异常-->", e)
    raise  # 处理完后继续抛出异常,raise表示抛出当前异常
print("-------------")


# 输出结果
出现异常--> division by zero
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
    i = 1 / 0
ZeroDivisionError: division by zero
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sind die Ausnahmen in Python? Detaillierte Einführung in Ausnahmen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Wie löste ich das Problem der Berechtigungen beim Betrachten der Python -Version in Linux Terminal? Apr 01, 2025 pm 05:09 PM

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 ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer-Anfänger-Programmierbasis in Projekt- und problemorientierten Methoden? Apr 02, 2025 am 07:18 AM

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 kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Wie kann man vom Browser vermeiden, wenn man überall Fiddler für das Lesen des Menschen in der Mitte verwendet? Apr 02, 2025 am 07:15 AM

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

Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Wie kann ich die gesamte Spalte eines Datenrahmens effizient in einen anderen Datenrahmen mit verschiedenen Strukturen in Python kopieren? Apr 01, 2025 pm 11:15 PM

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 hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Wie hört Uvicorn kontinuierlich auf HTTP -Anfragen ohne Serving_forver () an? Apr 01, 2025 pm 10:51 PM

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 erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Wie erstelle ich dynamisch ein Objekt über eine Zeichenfolge und rufe seine Methoden in Python auf? Apr 01, 2025 pm 11:18 PM

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 löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Wie löste ich Berechtigungsprobleme bei der Verwendung von Python -Verssionsbefehl im Linux Terminal? Apr 02, 2025 am 06:36 AM

Verwenden Sie Python im Linux -Terminal ...

See all articles