Python基础-异常处理(十四)

86 阅读2分钟

「这是我参与2022首次更文挑战的第14天,活动详情查看:2022首次更文挑战」。

异常处理通常由两种方法,第一种就是我们之前常用的if,加上if判断后,如果不符合判断则为异常。举个例子吧!

num = input("请输入一个数字:")
if num.isdigit():
    int(num)
else:
    print("请输入数字")

这里我们需要输入一个数字,才能让程序把输入的数字显示出来,如果输入的不是数字,程序则让我们输入数字,这就是一个简单判断异常的办法。

image.png

但如果类似的逻辑过多,那么每一次都需要判断这些内容,就会导致我们的程序过于冗长。

所以python提供了一种特定的语法结构,让我们用于异常处理。我们先来看看它的结构吧!

try:
    需要检测的代码块
except 异常类型:
    try中一旦检测到异常,就会执行这个位置的逻辑

那在实际使用当中,会有单分支和多分支的划分;单分支只能用来处理指定的异常情况,如果未捕获到异常,就会报错。例如下面这个例子

try:
    hello
except NameError as fizz:
    print(fizz)

因为hello没被定义,所以就会执行NameError,我们把NameError as 给fizz。 image.png

我们这儿用的是except,但在python的异常中,有一万能异常,Exception,它可以捕获任何异常。另外还有一些try...else语句、try...finally语句,因为不常用,所以不在这儿提及。

最后要说的就是python中的断言功能,assert,也就是声明其布尔值必须为真,如果发生了异常就说明表达式为假。举个例子:

assert 5==2,

可以看出断言就是后面加上表达式,来判断哪里出了问题。 image.png

在我们使用异常处理是,try...except...这种方式会比if在不牺牲可读性的同时,增加容错性。所以当我们要写很长代码的时候要注意用到的方法,应当是try...except...而不是if。