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
- Führen Sie die folgende Anweisung aus. Versuchen Sie es
- Wenn eine Ausnahme auftritt, suchen Sie in der Ausnahme-Anweisung nach der entsprechenden Ausnahme und behandeln Sie sie
- Wenn es keine Ausnahme gibt, führen Sie den Inhalt der else-Anweisung aus
- 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!