Python中异常处理

Python使用try...except...来处理异常,当Python遇到一个try语句,他会尝试执行try语句体内的语句,如果执行这些语句没有错误,控制转移到try...except...后面的语句,如果语句体内发生错误,python会寻找一个符合该错误的异常语句,然后执行处理代码。

try:
    <body>
except <ErrorType1>:
    <handler1>
except <ErrorType2>:
    <handler2>
else:
    <process_else>
finally:
    <process_finally>

try体内如果无异常产生,则执行else语句;

无论try体内无论是否有异常,finally语句都会执行,finally一般是无论是否异常发生都要执行清理的工作,比如打开后文件需要关闭文件的操作,连接网络后需要断开网络的操作。

我们的测试代码如下:

def main():
    while True:
        try:
            number1, number2 = eval(input('Enter two number,separated by a comma:'))
            result = number1 / number2
        except ZeroDivisionError:
            print('Division by zero!')
        except SyntaxError:
            print('A comma may be missing in the input')
        except:
            print('Something wrong in the input')
        else:
            print('No exception,the result is:', result)
            break
        finally:
            print('executing the final clause')
main()

测试数据如下:

Enter two number,separated by a comma:3,4
No exception,the result is: 0.75
executing the final clause
Enter two number,separated by a comma:2,0
Division by zero!
executing the final clause
Enter two number,separated by a comma:
当我们输入3,4时,代码运行正常,执行else和finally语句;当我们输入2,0 时,代码执行except  ZeroDivisionError和finally语句。我们可以看到无论try中是否错误发生,都会执行finally语句。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值