day15-异常捕获

1.什么是异常

程序运行的时候报错了,我们程序出现了异常

2.异常捕获

  • 目的:当程序出现异常的时候,程序不崩溃还可以接着执行后面的代码
  • 什么时候需要捕获:明明知道某个地方会出现异常,但是代码没有问题(用户的不当操作),这个时候就可以使用异常捕获

语法1: - 捕获所有类型的异常
try:
代码段1
except:
代码段2
finally:
代码段3

说明:
try、except - 关键字;固定写法
代码段1 - 需要捕获异常的代码
代码段2 - 捕获到异常后会执行的代码

执行过程:先执行try后面的代码段1,如果没有异常,直接执行后面的其他代码(不会执行代码段2);
如果代码1在执行的时候出现异常,程序不崩溃,直接(马上)执行except后面的代码段2

语法2: - 捕获指定类型的异常
try:
代码段1
except 异常类型:
代码段2
finally:
代码段3

语法3: - 同时捕获多种异常,针对不同异常进行相同的处理
try:
代码段1
except (异常类型1, 异常类型2,…):
代码段2
finally:
代码段3

语法4: - 同时捕获多种异常,针对不同异常进行不同的处理

try:
代码段1
except 异常类型1:
代码段11
except 异常类型2:
代码段22

finally:
代码段3

try:
    age = int(input('请输入年龄:'))
    print('****')
except:
    print('年龄输入有误')
    age = 0

print(f'年龄是:{age}')
print('+++++++++++')

# 练习:打开指定的文本文件,如果文件存在就读文件中的内容
# 如果不存在就创建这个文件。
try:
    with open('./aaa.txt', 'r', encoding='utf-8') as f:
        print(f.read())
except:
    print('改文件不存在!')
    with open('./aaa.txt', 'w', encoding='utf-8') as f:
        pass

try:

    list1 = [10, 20, 30]
    print(list1[3])
    print({'a': 10, 'b': 20}['aa'])
except IndexError:
    print('出现异常')

3.关键字finally

finally的存在不影响原来异常捕获的执行
finally后面的代码是不管try里面的代码发生了什么情况都会执行。(就算代码段1出现异常没有被捕获到finally后面的代码也会执行)

try:
    print('hello world!')
    # print('abc'[100])
    print({'a': 19}['b'])
except IndexError:
    print('出现了异常!')
finally:
    print('写遗书')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值