python入门

异常引发和断言

2022-05-30  本文已影响0人  朱兰Juran

引发异常

您可以使用 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 语句的任何其他异常一样被捕获和处理,但是如果不处理,这种类型的异常将终止程序。

上一篇下一篇

猜你喜欢

热点阅读