[Python] Ausnahmebehandlung② (Einführung in Ausnahmetypen | Angegebene Ausnahmen abfangen und behandeln | Mehrere Ausnahmetypen abfangen)





1. Python erfasst den angegebenen Ausnahmetyp




1. Einführung in Ausnahmetypen


Ausnahmen in Python werden durch die Ausnahmeklasse Exception Class dargestellt, und jede Ausnahmeklasse repräsentiert einen bestimmten Fehlertyp;

Häufige Ausnahmeklassen:

  • FileNotFoundError : Zeigt einen Fehler beim Öffnen einer nicht vorhandenen Datei an;
  • ZeroDivisionError : Zeigt einen Fehler bei der Division durch Null an;
  • ValueError : Zeigt einen ungültigen Wert an;
  • KeyError : Zeigt an, dass der angegebene Schlüssel nicht im Wörterbuch vorhanden ist.
  • IndexError : Zeigt an, dass der angegebene Index in der Liste oder im Tupel nicht vorhanden ist.
  • IOError : Zeigt einen E/A-Fehler an, z. B. die Unfähigkeit, eine Datei zu lesen oder zu schreiben.

Wenn eine Ausnahme auftritt, stoppt das Programm die Ausführung der aktuellen Anweisung und springt zum Ausnahmehandler Exception Handler, der für die Behandlung der Ausnahme verantwortlich ist und verhindert, dass das Programm abstürzt.

In Python können Ausnahmen mithilfe der try-exclusive-Anweisung abgefangen und behandelt werden.


2. Spezifizierte Ausnahmen abfangen und behandeln


In Python können Ausnahmen bestimmter Typen abgefangen werden. Die Syntax lautet wie folgt:

try:
	可能出现异常的代码块
except 异常类型 as 异常别名:
	出现异常后执行的代码块
	可使用异常别名获取异常对象
	

3. Codebeispiel – Erfassen und Behandeln bestimmter Ausnahmen


Codebeispiel:

"""
文件操作 代码示例
"""

try:
    open("file3.txt", "r", encoding="UTF-8")
except FileNotFoundError as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {
      
      e}")
    open("file3.txt", "w", encoding="UTF-8")

Ergebnisse der:

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
出现异常, 进行异常处理, 异常内容 : [Errno 2] No such file or directory: 'file3.txt'

Process finished with exit code 0

Fügen Sie hier eine Bildbeschreibung ein


4. Codebeispiel – Fall eines Fehlers bei der Ausnahmeerfassung


Wenn beim Abfangen der Ausnahme nicht die richtige Ausnahme abgefangen wird, löst sich die Ausnahme trotzdem auf und das Programm wird beendet.

Im folgenden Code wird FileNotFoundError erfasst. Wenn andere Arten von Ausnahmen auftreten, z. B. ZeroDivisionError, wird die Ausführung des Programms direkt gestoppt.

Der folgende Code führt num = 1 / 0den Code und es wird eine ZeroDivisionError-Ausnahme gemeldet.


Codebeispiel:

"""
文件操作 代码示例
"""

try:
    num = 1 / 0
    open("file3.txt", "r", encoding="UTF-8")
except FileNotFoundError as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {
      
      e}")
    open("file3.txt", "w", encoding="UTF-8")

Ergebnisse der:

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
Traceback (most recent call last):
  File "/Users/zyq/PycharmProjects/Hello/main.py", line 6, in <module>
    num = 1 / 0
ZeroDivisionError: division by zero

Process finished with exit code 1





2. Python erfasst mehrere Arten von Ausnahmen




1. Mehrere Ausnahmesyntax abfangen


Syntax für mehrere Ausnahmen abfangen:

try:
	可能出现异常的代码块
except (异常类型1, 异常类型2, 异常类型3, ...) as 异常别名:
	出现异常后执行的代码块
	可使用异常别名获取异常对象

2. Codebeispiel – Mehrere Ausnahmen abfangen


Im folgenden Code können zwei Arten von Ausnahmen auftreten, FileNotFoundError und ZeroDivisionError, und diese beiden Arten von Ausnahmen werden gleichzeitig abgefangen, wenn die Ausnahme abgefangen wird.

Wenn während der Ausführung eine dieser beiden Ausnahmen auftritt, wird die Ausnahme abgefangen und verarbeitet.


Codebeispiel:

"""
文件操作 代码示例
"""

try:
    num = 1 / 0
    open("file3.txt", "r", encoding="UTF-8")
except (FileNotFoundError, ZeroDivisionError) as e:
    print(f"出现异常, 进行异常处理, 异常内容 : {
      
      e}")

Ergebnisse der:

/Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py 
出现异常, 进行异常处理, 异常内容 : division by zero

Process finished with exit code 0

Acho que você gosta

Origin blog.csdn.net/han1202012/article/details/131354438
Recomendado
Clasificación