Python进阶之路 9.3.1 try...except 异常捕捉语句的基本用法

版权声明:本教程只限学习交流,不得用于商业用途。 https://blog.csdn.net/weixin_45086637/article/details/91048613

9.3.1 try…except 异常捕捉语句的基本用法

try…except语句用于捕捉代码块的异常。在使用try…except语句之前,先看一看不使用该语句的情况。

x = int(input('请输入分子:'))
y = int(input('请输入分母:'))
print('x / y = {}'.format(x / y))

输出结果:

请输入分子:10
请输入分母:0
Traceback (most recent call last):
  File "/Users/limingda/PycharmProjects/untitled6/test3.py", line 3, in <module>
    print('x / y = {}'.format(x / y))
ZeroDivisionError: division by zero

执行上面的代码后,分子输入任意的数值,分母输入0,就会抛出异常结果,从而导致程序崩溃,也就是说,本来正常执行第3条语句(print函数),但由于x/y中的y变量是0,所以直接抛出了异常,因此,第3条语句后面的所有语句都不会被执行。

由于用户的输入是不可控的,所以当采集用户输入的数据时,应该使用try…except语句对相关代码进行异常捕捉,尽管异常并不会每次都发生,但这么做可以有备无患。

[例 9.2] 本例通过try…except语句捕捉用户输入可能造成的异常,如果用户输入了异常数据,会提示用户,并要求重新输入数据。

# 定义一个x变量,但x变量中没有值(None)

x = None
while True:

    try:

        # 如果x已经有了值,表示已经捕捉了异常,那么在此输入数据时,就不需要输入x的值了
        if x == None:
            x = int(input('请输入分子:'))    # 输入分子的值

        y = int(input('请输入分母:'))    # 输入分母的值

        print('x / y = {}'.format(x/y)) # 输出x/y的结果

        break;  # 如果分子和分母都正常,那么就退出循环

    except:

        print('分母不能为0,请重新输入分母!')    # 只有发生异常时,才会执行这行代码

输出结果:

请输入分子:10
请输入分母:0
分母不能为0,请重新输入分母!
请输入分母:2
x / y = 5.0

关于try…except语句人如下几方面内容:

▩ try…except语句是一个代码块,所以try和except后面要加冒号(:)

▩ try和except之间是正常执行的语句,如果这些代码不发生错误,那么就会正常执行下去,这时except部分的代码是不会执行的。如果try和except之间的代码发生了错误,那么错误点后面的代码都不会被执行了,而会跳到except子句去执行except代码块中的代码。

▩ 如果except关键字后面没有指定任何异常类,那么except部分可以捕捉任何的异常,如果想捕捉具体的异常,这里不多做讨论。

猜你喜欢

转载自blog.csdn.net/weixin_45086637/article/details/91048613