pytthon try except 捕获异常

try:
    理解它是扫描器,将可能出现异常的代码放入其中;
    如果在执行过程中出现异常对象了,扫描器会立即察觉到此异常对象,
    但是它没有处理它的能力,所以会将异常对象给到except(捕获器)进行解决

except:
    理解它是捕获器,后面可以定义异常类型,并且和as关键字配合使用;
    定义多个except也是合法的,但是它的执行顺序,由上往下,一旦匹配上就执行except,之后的不执行了;

    将匹配成功的异常对象捕获住,并且kill;顺便会直接except范围内的逻辑代码

finally:
    将一定需要执行的代码,放入finally中;记住:finally一定会被执行
    举例:像关闭文件操作、断开数据库连接操作等都可以放入到finally中

else:
    位置在finally前,except后;效果类似于循环
    没有异常对象出现,else就会被执行;反之不会被执行

raise:
    手动抛出一个异常类对象,后面紧跟异常类型(msg)


格式:

1).    
    try:
        语句块1
    except 异常类型1 as 变量名:
        语句块2
    except 异常类型2 as 变量名:
        语句块3
    except 异常类型3 as 变量名:
        语句块4
    finally:
        语句块5

【注意】
    以上格式有多个并列的except存在,
    如果它们之间没有子父类的关系(互斥),那么谁上谁下无所谓
    如果它们之间有子父类的关系(包含),那么小的在上,大的在下


2).    
    try:
        语句块1
    except (异常类型1,异常类型2,...) as 变量名:
        语句块2
    finally:
        语句块3

【注意】
    一个except具备多个能力(捕获多种异常对象的能力)


3).
    try:
        语句块1
    except 异常类型1 as 变量名:
        语句块2
    except 异常类型2 as 变量名:
        语句块3
    except 异常类型3 as 变量名:
        语句块4
    except:
        语句块5
    finally:
        语句块6

【注意】
    如果定义了except,那么它必须是最后一个except,它可以理解为是Exception的简化版


注意事项:

1).try...finally这种格式是合法的,但是丧失解决异常对象的能力
2).else语句必须配合except使用,出现的位置在except的后面
3).常见的运行时异常类型:
    ZeroDivisionError:  分母不能为的异常
    IndexError:下标越界的异常
    FileNotFoundError:文件找不到的异常
    TypeError:类型有误的异常
    NameError:没有被定义就使用的异常
4).with..as语句可以优化单独的open操作,体现:不用关闭文件

总结:学习异常很简单就5个关键字:try except finally else raise

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值