Python-Hinweise: Ausnahmen und Ausnahmebehandlung

1. Das Konzept der Ausnahme:

• Wenn das Programm ausgeführt wird und der Python-Interpreter auf einen Fehler stößt, stoppt er die Ausführung des Programms und gibt einige Fehlermeldungen aus. Dies ist eine Ausnahme. • Die Aktion des Programms, die Ausführung zu stoppen und eine Fehlermeldung anzuzeigen, wird normalerweise
aufgerufen : Ausnahme auslösen (erhöhen).

Bei der Entwicklung eines Programms ist es schwierig, alle Sondersituationen umfassend zu behandeln. Die Ausnahmeerfassung kann sich auf die Behandlung von Notfällen konzentrieren, um die Stabilität und Robustheit des Programms sicherzustellen.

2. Ausnahmen abfangen

2.1 Einfache Syntax zum Abfangen von Ausnahmen
• Wenn bei der Programmentwicklung bei der Ausführung eines Codes nicht sicher ist, ob er korrekt ist, können Sie try (try) hinzufügen, um Ausnahmen abzufangen.
• Das einfachste Syntaxformat zum Abfangen von Ausnahmen:

try:
	尝试执行的代码《不确定是否能正常执行》
except:
	编写尝试失败的代码《即以上代码不能正常执行》

Unabhängig davon, ob eine Ausnahme vorliegt oder nicht, wird der Code später ausgeführt

Einfache Übung zum Abfangen von Ausnahmen – Aufforderung an den Benutzer, eine Ganzzahl einzugeben

try:
	num = int(input("请输入数字:")) # 提示用户输入一个数字
except:
	print("请输入正确的数字")

2.2 Fehlertyperfassung

• Wenn das Programm ausgeführt wird, können unterschiedliche Arten von Ausnahmen auftreten, und es müssen unterschiedliche Antworten auf unterschiedliche Arten von Ausnahmen gemacht werden. Zu diesem Zeitpunkt ist es notwendig, den Fehlertyp zu erfassen. • Die Syntax lautet wie folgt
:

try:
# 尝试执行的代码 pass 
except 错误类型1:
	# 针对错误类型1,对应的代码处理
except (错误类型2, 错误类型3):
	# 针对错误类型2和3,对应的代码处理
except Exception as result:
	print("未知错误 %s" % result)

Wenn der Python-Interpreter eine Ausnahme auslöst, ist das erste Wort der letzten Zeile der Fehlermeldung der Fehlertyp

Exemplarische Vorgehensweise zum Abfangen von Ausnahmetypen – Aufforderung an den Benutzer, eine Ganzzahl einzugeben

Anforderungen:
1. Fordern Sie den Benutzer zur Eingabe einer Ganzzahl auf.
2. Teilen Sie die vom Benutzer eingegebene Ganzzahl durch 8 und geben Sie sie aus

try:
	num = int(input("请输入整数:")) 
	result = 8 / num
	print(result) 
except ValueError: #错误类型1
	print("请输入正确的整数") 
except ZeroDivisionError: #错误类型2
	print("除 0 错误")

2.3 Unbekannte Fehler abfangen
• Während der Entwicklung ist es immer noch schwierig, alle möglichen Fehler vorherzusagen. •
Wenn Sie möchten, dass das Programm nicht beendet wird, weil der Python-Interpreter unabhängig von Fehlern eine Ausnahme auslöst, können Sie eine weitere Ausnahme hinzufügen

Die Syntax lautet wie folgt:

except Exception as result:
	print("未知错误 %s" % result)

2.4 Vollständige Syntax für die Ausnahmeerfassung
• Um in der tatsächlichen Entwicklung komplexe Ausnahmesituationen bewältigen zu können, lautet die vollständige Ausnahmesyntax wie folgt:

try:
	# 尝试执行的代码 
except 错误类型1:
	# 针对错误类型1,对应的代码处理
except 错误类型2:
	# 针对错误类型2,对应的代码处理  
except (错误类型3, 错误类型4):
	# 针对错误类型3和4,对应的代码处理
except Exception as result:
	# 打印错误信息 print(result) 
else:
	# 没有异常才会执行的代码 pass 
finally:
	# 无论是否有异常,都会执行的代码 
	print("无论是否有异常,都会执行的代码")

Der vollständige Code zum Abfangen von Ausnahmen aus einer vorherigen exemplarischen Vorgehensweise lautet wie folgt:

try:
	num = int(input("请输入整数:")) 
	result = 8 / num
	print(result) 
except ValueError:
	print("请输入正确的整数") 
except ZeroDivisionError:
	print("除 0 错误") 
except Exception as result:
	print("未知错误 %s" % result) 
else:
	print("正常执行") 
finally:
	print("执行完成,但是不保证正确")

Fall 1:
Bitte geben Sie eine Ganzzahl ein: 8
1.0
Normale Ausführung
Die Ausführung ist abgeschlossen, es kann jedoch nicht garantiert werden, dass sie korrekt ist.
Fall 2:
Bitte geben Sie eine Ganzzahl ein: 0,2
Bitte geben Sie eine korrekte Ganzzahl ein.
Die Ausführung ist abgeschlossen, es kann jedoch nicht garantiert werden, dass sie korrekt ist richtig sein.

3. Ausnahmelieferung

• Ausnahmeübermittlung – Wenn während der Ausführung einer Funktion/Methode eine Ausnahme auftritt, wird die Ausnahme an den Aufrufer der Funktion/Methode übergeben. •
Wenn sie an das Hauptprogramm übergeben wird und immer noch keine Ausnahmebehandlung erfolgt, wird das Programm beendet .

Tipps:
• Während der Entwicklung können Sie die Ausnahmeabfangfunktion in der Hauptfunktion hinzufügen.
• Solange eine Ausnahme in anderen in der Hauptfunktion aufgerufenen Funktionen auftritt, wird sie an die Ausnahmeabfangfunktion der Hauptfunktion übergeben.
• Auf diese Weise ist dies möglich Dem Code müssen nicht viele Ausnahmen hinzugefügt werden. Durch die Ausnahmeerfassung kann die Sauberkeit des Codes sichergestellt werden

Anforderungen
1. Definieren Sie die Funktion demo1(), um den Benutzer aufzufordern, eine Ganzzahl einzugeben und diese zurückzugeben.
2. Definieren Sie die Funktion demo2(), um demo1() aufzurufen.
3. Rufen Sie demo2() im Hauptprogramm auf

def demo1():
	return int(input("请输入一个整数:"))

def demo2():
	return demo1()

try:
	print(demo2()) 
except ValueError:
	print("请输入正确的整数") 
except Exception as result:
	print("未知错误 %s" % result)

4. Raise-Ausnahme auslösen

• Während der Entwicklung können zusätzlich zum Python-Interpreter, der Ausnahmen auslöst, wenn Codeausführungsfehler auftreten, Ausnahmen auch aktiv entsprechend den individuellen Geschäftsanforderungen der Anwendung ausgelöst werden. • Python bietet
eine Ausnahmeklasse „Exception“ [Sie können auch Ihre eigene Ausnahmeklasse definieren]
• Wenn Sie während der Entwicklung eine Ausnahme auslösen möchten, um bestimmte Geschäftsanforderungen zu erfüllen, können Sie Folgendes tun:
1. Erstellen Sie ein Ausnahmeobjekt.
2. Verwenden Sie das Schlüsselwort raise , um das Ausnahmeobjekt auszulösen

try:
	print("请输入登录账号: ")
	username = input(">> ")
	if username != "zhangsan":
		raise Exception("用户名输入错误")
	print("请输入登录密码: ")
	password = input(">>: ")
	if (password != "123456"):
		raise Exception("密码输入错误")
except Exception as e:
	print(e)

Die Verwendung der raise-Anweisung zum aktiven Auslösen von Ausnahmen bedeutet, dass Entwickler selbst Programmausnahmen erstellen können. Die Programmausnahme bezieht sich hier nicht auf Systemausnahmen wie Speicherüberlauf und Listenzugriff außerhalb der Grenzen, sondern auf das Auftreten von Benutzerfehlern während die Ausführung des Programms. Eingabedaten stimmen nicht mit den erforderlichen Daten überein, Benutzerbedienungsfehler usw. **Diese Probleme erfordern, dass das Programm sie behandelt und entsprechende Eingabeaufforderungen gibt.

Assertion-Anweisung:
Die Assertion-Anweisung, auch Assertion-Anweisung genannt, kann als reduzierte Version der if-Anweisung betrachtet werden. Sie wird verwendet, um den Wert eines bestimmten Ausdrucks zu bestimmen. Wenn der Wert wahr ist, kann das Programm weiter ausgeführt werden ; andernfalls erklärt Python, dass der Prozessor einen AssertionError-Fehler meldet.

Die Syntaxstruktur der Assert-Anweisung lautet:

Ausdruck bestätigen[, Parameter]

Wenn der Ausdruck wahr ist, wird das Programm weiter ausgeführt;
wenn der Ausdruck falsch ist, wird ein AssertionError geworfen und die Parameter werden ausgegeben.

Der Ausführungsablauf der Assertion-Anweisung kann durch eine if-Urteilsanweisung dargestellt werden, wie unten gezeigt:

 if 表达式==True:
    程序继续执行
else:
    程序报 AssertionError:参数 
def foo(s):
    n = int(s)
    assert n != 0, 'n is zero!'
    return 10 / n

foo('0')

# 代码执行结果
AssertionError: n is zero!

Ich denke du magst

Origin blog.csdn.net/qq_44804542/article/details/115996266
Empfohlen
Rangfolge