Day 15 异常捕获

Day 15 异常捕获

1.异常捕获

1.什么是异常:程序运行的时候报错了,我们程序出现了异常

程序异常的后果:程序会在异常的地方直接结束,不会往后继续执行

2.异常捕获:

目的:当程序出现异常的时候,程序不崩溃还可以接着执行后面的代码

什么时候需要捕获:知道某个地方会因为不可控因素出现异常时就可以使用异常捕获(例如用户的不当操作)

age = int(input('请输入年龄:'))    # 如果输入非数字会捕获异常
print(f'年龄是:{age}')

异常捕获的语法:

语法1:—— 捕获所有类型异常

try:
    代码段1
    # 需要捕获异常的代码
except:
    代码段2
    # 异常出现后会执行的代码

try、except - 关键字;固定写法
先执行try后面的代码段1,如果没有异常,接着执行后面的代码(不会执行代码段2):
如果代码段1在执行的时候出现异常,程序不崩溃,直接执行except后面的代码段2

try:
    age = int(input('请输入年龄:'))
except:
    print('年龄输入有误')
    age = 0
print(f'年龄是:{age}')
print('-------------')

练习:打开指定的文本文件,如果文件存在就读文件中的内容,如果不存在就创建文件。

try:
    with open('./new.txt', 'r', encoding='utf-8') as f:
        print(f.read())
except:
    with open('./new.txt', 'w', encoding='utf-8') as f:
        pass

语法2: —— 捕获指定类型的异常

try:
    代码段1
    # 需要捕获异常的代码
except 异常类型:
    代码段2
    # 异常出现后会执行的代码

语法3:—— 同时捕获多种异常,针对不同异常进行相同处理

try:
   代码段1
except(异常类型1,异常类型2,....):
   代码段2

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

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

3.关键字finally

finally的存在的存在不影响异常捕获的执行

finally后面的代码不管try里面的代码是不管try里面的代码发生了什么情况都会执行。(就算代码1出现异常没有被捕获的时候)

try:
    代码段1
    # 需要捕获异常的代码
except:
    代码段2
    # 异常出现后会执行的代码
    
上一篇:Python异常处理(常见异常、异常处理机制、抛出异常,自定义异常)


下一篇:Bug