python学习7

【注:pycharm中写代码运行时出现错误有可能是格式缩进问题:不论出现什么错误,先将所有代码选中(ctrl+A),然后用 ctrl + Alt +I (自动缩进)运行以下看是否仍有错误,如还有错误再去查错误】

异常处理

1.第一个异常——除零异常 【 分母为0 】

i = imput('请输入数字:')
n = 1000
result = n / int(i)
print(result)
print('{}除以{}等于{}'.format(n, i, result))

在这里插入图片描述

异常捕获

我们不能防止用户输入0,但在出现异常后我们能捕获并处理异常,不至于让程序发生终止并退出。
try - except语句
在这里插入图片描述

i = imput('请输入数字:')
n = 1000
try: # 可能会引发异常的语句
     result = n / int(i)
     print(result)
     print('{}除以{}等于{}'.format(n, i, result))
except ZeroDivisionError as  e: #异常类型
     print('不能除以0,异常:{}'.format(e))# 处理异常

在这里插入图片描述
多个except代码块
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果多个except代码块的异常处理过程类似,则可以合并处理,这就是多重异常捕获。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
try-except语句嵌套
【不是所有的异常都能嵌套,异常的嵌套需要有因果关系才用】
如果用户输入的是非数字类型字符串,一开始 int 转换的时候就会捕获到异常,只有当用户输入的是数字类型的字符串,才有除法的必要,到除法时才有判断是否分母为0的异常。所以两个异常是有因果关系的,数字型字符串才有判断分母为0的必要。
在这里插入图片描述
在这里插入图片描述
使用finally代码块释放资源
有时在try-except 语句中会占用一些资源,可以使用 finally 代码块
【 finally 后面的不管有没有异常都要执行】
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
自定义异常类
我们接触的异常都是由于解释器引发的,也可以通过 raise 语句手动引发异常。
【大公司自己创的库中自定义异常类】
通常情况使用手动引发异常的目的是由于我们自定义了一个异常,需要引发出来
在这里插入图片描述
【这个代码输入正常数字运行没问题,如果输入异常代码运行有错误】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值