引发异常
您可以使用 raise 语句引发异常。
print(1)
raise ValueError
print(2)
结果:
1
ValueError
您需要指定引发的异常的类型。
引发异常可以提供一些异常的描述。
例如:
name = "123"
raise NameError("Invalid name!")
结果:
NameError: Invalid name!
在 except 块下,raise 语句可以在没有参数的情况下使用来重新引发发生的异常。
例如:
try:
num = 5 / 0
except:
print("An error occurred")
raise
结果:
An error occurred
ZeroDivisionError: division by zero
断言
使用 assert 断言是一个非常好的习惯,python assert 断言句语格式及用法很简单。在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件时就崩溃,这时候就需要 assert 断言的帮助。
assert 断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假。可以理解 assert 断言语句为 raise-if-not,用来测试表示式,其返回值为假,就会触发异常。
断言是通过使用 assert 语句来执行的。
print(1)
assert 2 + 2 == 4
print(2)
assert 1 + 1 == 3
print(3)
结果:
1
2
AssertionError
程序员经常在函数的开始处放置断言来检查有效的输入,并且在函数调用之后检查有效的输出。
如果断言失败,assert 可以接受第二个传递给 AssertionError 的参数。
temp = -10
assert (temp >= 0), "Colder than absolute zero!"
结果:
AssertionError: Colder than absolute zero!
AssertionError 异常可以像使用 try-except 语句的任何其他异常一样被捕获和处理,但是如果不处理,这种类型的异常将终止程序。
网友评论