Ein Muss für Python-Anfänger: Python-Ausnahmebehandlungssammlung

abnormal

  • Fehler im weiteren Sinne werden in Fehler und Ausnahmen unterteilt
  • Fehler können vermieden werden
  • Anomalie bezieht sich auf ein Problem, das unter der Voraussetzung einer korrekten grammatikalischen Logik auftritt
  • In Python ist eine Ausnahme eine Klasse, die behandelt und verwendet werden kann

Abnormale Klassifizierung

BaseException Die Basisklasse aller Ausnahmen

Ausnahmebasisklasse für häufige Fehler

ArithmeticError Die Basisklasse für alle numerischen Berechnungsfehler

Warnung Basisklasse

AssertError-Assertionsanweisung (assert) ist fehlgeschlagen

AttributeError Versuch, auf ein unbekanntes Objektattribut zuzugreifen

DeprecattionWarning Warnung vor veralteten Funktionen

EOFError Ende-Flag für Benutzereingabedatei EOF (Strg + d)

FloattingPointError Gleitkomma-Berechnungsfehler

FutureWarning Eine Warnung, dass sich die Semantik der Struktur in Zukunft ändern wird

Wenn die GeneratorExit-Methode generator.close () aufgerufen wird

ImportError beim Importieren eines Moduls schlägt fehl

IndexError Index liegt außerhalb des Bereichs der Sequenz

KeyError-Suche nach einem nicht vorhandenen Schlüsselwort im Wörterbuch

KeyboardInterrupt Interrupt-Taste für Benutzereingabe (Strg + c)

MemoryError Speicherüberlauf (Speicher kann durch Löschen des Objekts freigegeben werden)

NamerError hat versucht, auf eine nicht vorhandene Variable zuzugreifen

NotImplementedError-Methode noch nicht implementiert

OSError Eine vom Betriebssystem generierte Ausnahme (z. B. Öffnen einer nicht vorhandenen Datei)

OverflowError Die numerische Operation überschreitet die maximale Grenze

Überlaufwarnung Alte Warnung vor automatischer Heraufstufung auf lange Ganzzahl (lang)

PendingDeprecationWarning Eine Warnung, dass Funktionen abgebrochen werden

ReferenceError schwache Referenz (schwache Referenz) versucht, auf ein Objekt zuzugreifen, das vom Garbage Collection-Mechanismus zurückgefordert wurde

RuntimeError Allgemeiner Laufzeitfehler

RuntimeWarning Warnung vor verdächtigem Betriebsverhalten (Laufzeitverhalten)

Der StopIteration-Iterator hat keine Werte mehr

SyntaxError Pythons Syntaxfehler

SyntaxWarning Verdächtige Syntaxwarnung

IndentationError Einrückungsfehler

TabError Tab und Space werden gemischt verwendet

SystemError Python-Compiler-Systemfehler

Der SystemExit Python-Compilerprozess ist geschlossen

TypeError ungültige Operation zwischen verschiedenen Typen

UnboundLocalError greift auf eine nicht initialisierte lokale Variable zu (eine Unterklasse von NameError).

UnicodeError Unicode-bezogene Fehler (eine Unterklasse von ValueError)

UnicodeEncodeError Unicode-Codierungsfehler (Unterklasse von UnicodeError)

UnicodeDecodeError Unicode-Decodierungsfehler (Unterklasse von UnicodeError)

UserWarning Benutzercode generiert Warnung

ValueError hat einen ungültigen Parameter übergeben

ZeroDivisionError durch Null teilen

l = [1,2,3,4,5]
# 除零错误
num = int(input("Please input your num: "))
print(100/num)
Please input your num: 0
---------------------------------------------------------------------------

ZeroDivisionError                         Traceback (most recent call last)

<ipython-input-1-8abb196ce2aa> in <module>
      2 # 除零错误
      3 num = int(input("Please input your num: "))
----> 4 print(100/num)
ZeroDivisionError: division by zero

Ausnahmebehandlung

  • Es gibt keine Garantie dafür, dass das Programm immer korrekt ausgeführt wird
  • Es muss jedoch sichergestellt werden, dass die vom Programm im schlimmsten Fall verursachten Probleme ordnungsgemäß behandelt werden
  • Die gesamte Syntax des Ausnahmebehandlungsmoduls von Python lautet:

Versuchen:

Versuchen Sie, eine bestimmte Operation zu erreichen,

Wenn es keine Ausnahmen gibt, kann die Aufgabe abgeschlossen werden

Wenn eine Ausnahme auftritt, lösen Sie die Ausnahme aus dem aktuellen Codeblock aus, um zu versuchen, die Ausnahme zu beheben

außer Ausnahmetyp 1:

Lösung 1: Wird verwendet, um zu versuchen, die Ausnahme hier zu behandeln, um das Problem zu lösen

 

außer Ausnahmetyp 2:

Lösung 2: Wird verwendet, um zu versuchen, die Ausnahme hier zu behandeln, um das Problem zu lösen

ausgenommen (Ausnahmetyp 1, Ausnahmetyp 2 ...):

Lösung: Verwenden Sie dieselbe Behandlungsmethode für mehrere Ausnahmen

 

außer:

Wenn es keine Ausnahmen gibt, wird der Code hier ausgeführt

 

endlich:

Gibt es einen Ausführungscode, der ausgeführt werden soll?

  • Prozess
  1. Führen Sie die folgende Anweisung aus. Versuchen Sie es
  2. Wenn eine Ausnahme auftritt, suchen Sie in der Ausnahme-Anweisung nach der entsprechenden Ausnahme und behandeln Sie sie
  3. Wenn es keine Ausnahme gibt, führen Sie den Inhalt der else-Anweisung aus
  4. Schließlich muss die finally-Anweisung ausgeführt werden, unabhängig davon, ob eine Ausnahme vorliegt

Viele Menschen lernen Python und wissen nicht, wo sie anfangen sollen.
Viele Menschen lernen Python und nachdem sie die grundlegende Grammatik beherrschen, wissen sie nicht, wo sie Fälle finden können, um loszulegen.
Viele Menschen, die Fallstudien durchgeführt haben, wissen nicht, wie sie fortgeschritteneres Wissen erlernen können.
Für diese drei Arten von Menschen biete ich Ihnen eine gute Lernplattform, auf der Sie kostenlos Video-Tutorials, E-Books und den Quellcode des Kurses erhalten können!
QQ-Gruppe: 705933274

  • Außer Ausnahme (mindestens eine), sonst und schließlich sind optional
# 简单异常案例
try:
    num = int(input("Please input your number:"))
    rst = 100/num
    print("计算结果是:{}".format(rst))
except:
    print("输入错误")
    # exit是退出程序的意思
    exit()

Bitte geben Sie Ihre Nummer ein: 0
Eingabefehler 

# 简单异常案例
# 给出提示信息
try:
    num = int(input("Please input your number:"))
    rst = 100/num
    print("计算结果是:{}".format(rst))
# 捕获异常后,把异常实例化,出错信息会在实例里
# 注意以下写法
# 以下语句是捕获ZeroDivisionError异常并实例化实例e
except ZeroDivisionError as e:
    print("输入错误")
    print(e)
    # exit是退出程序的意思
    exit()
# 简单异常案例
# 给出提示信息
try:
    num = int(input("Please input your number:"))
    rst = 100/num
    print("计算结果是:{}".format(rst))
# 如果是多种error的情况
# 需要把越具体的错误,越往前放
# 在异常类继承关系中,越是子类的异常,越要往前放,
# 越是父类的异常,越要往后放 、

# 在处理异常的时候,一旦拦截到某一个异常,则不再继续往下查看,直接进行下一个
# 代码,即有finally则执行finally语句,否贼就执行下一个大的语句
except ZeroDivisionError as e:
    print("输入错误")
    print(e)
    # exit是退出程序的意思
    exit()
except NameError as e:
    print("名字起错了")
    print(e)

except AttributeError as e:
    print("属性错误")
    print(e)
    exit()
# 常见错误的基类
# 如果写下面这句话,常见异常都会拦截住
# 而且下面这句话一定是最后一个excepttion
except Exception as e:
    print("我也不知道就出错了")
    print(e)

except ValueError as e:
    print("NO>>>>>>>>>>>")
print("hahaha")

 Bitte geben Sie Ihre Nummer ein: ffff
Ich weiß es nicht, es hat einen
ungültigen Literalfehler für int () mit Basis 10 gemacht: 'ffff'
hahaha

Der Benutzer löst manuell eine Ausnahme aus

  • Wenn der Benutzer in einigen Fällen selbst eine Ausnahme auslösen möchte, können Sie diese verwenden
  • Schlüsselwort erhöhen, um eine Ausnahme auszulösen
# raise 案例
try:
    print("I love you")
    print(3.1415926)
    # 手动引发一个异常
    # 注意语法:raise ErrorClassName
    raise ValueError
    print("还没完呀")
except NameError as e:
    print("NameError")
except ValueError as e:
    print("ValueError")
except Exception as e:
    print("有异常")
finally:
    print("我肯定会被执行的")

Ich liebe dich
3.1415926
ValueError
Ich werde definitiv ausgeführt 

# raise 案例-2
# 自定义异常
# 需要注意:自定义异常必须是系统异常的子类
class DanaValueError(ValueError):
    pass

try:
    print("I love you")
    print(3.1415926)
    # 手动引发一个异常
    # 注意语法:raise ErrorClassName
    raise DanaValueError
    print("还没完呀")
except NameError as e:
    print("NameError")
# except DanaValueError as e:
#    print("DanaError")
except ValueError as e:
    print("ValueError")
except Exception as e:
    print("有异常")
finally:
    print("我肯定会被执行的")

Ich liebe dich 3.1415926 ValueError Ich werde definitiv ausgeführt

# else语句案例

try:
    num = int(input("Please input your number:"))
    rst = 100/num
    print("计算结果是:{}".format(rst))
except Exception as e:
    print("Exceptiong")  
 
else:
    print("No Exception")
finally:
    print("反正我会被执行")

Bitte geben Sie Ihre Nummer ein: 0

Ausnahmeg

Ich werde trotzdem hingerichtet

Informationen zu benutzerdefinierten Ausnahmen

  • Solange es sich um eine Auslöserausnahme handelt, wird eine benutzerdefinierte Ausnahme empfohlen
  • Beim Anpassen einer Ausnahme enthält diese im Allgemeinen Folgendes:
  • Passen Sie den Ausnahmecode an, in dem die Ausnahme auftritt
  • Passen Sie die Problemaufforderung an, nachdem eine Ausnahme aufgetreten ist
  • Passen Sie die Anzahl abnormaler Zeilen an
  • Das ultimative Ziel ist es, dem Programmierer das schnelle Auffinden der Fehlerstelle zu erleichtern, sobald eine Ausnahme auftritt

Ich möchte weiterhin die Python-Lerngruppe empfehlen, die ich selbst erstellt habe : 705933274 , die alle Python lernen. Wenn Sie Python lernen oder lernen möchten, können Sie gerne beitreten. Jeder ist eine Softwareentwicklungspartei und teilt Trockenwaren von von Zeit zu Zeit (nur im Zusammenhang mit der Python-Softwareentwicklung), einschließlich einer Kopie der neuesten Python-Materialien für Fortgeschrittene und nullbasierter Lehre, die ich 2021 zusammengestellt habe. Willkommen Freunde, die fortgeschritten sind und sich für Python interessieren, um mitzumachen!

 

Ich denke du magst

Origin blog.csdn.net/m0_55479420/article/details/114836277
Empfohlen
Rangfolge