Python——什么是异常处理和异常处理的两种方式对比

Python——什么是异常处理和异常处理的两种方式对比

什么是异常

程序中难免出现出错,一般可以分为两种:
1、语法错误
2、逻辑错误

1、什么是异常:异常是程序运行时发生错误的信号 。

在这里插入图片描述

2、python中异常的种类

在python中不同的异常可以用不同的类型(python中同一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误

1、常用异常

在这里插入图片描述

异常处理

1、什么是异常处理

在这里插入图片描述

2、为何要进行异常处理

在这里插入图片描述

3、如何进行异常处理

异常是由程序的错误引起的,语法上的错误跟异常处理无关,必须在程序运行前就修正。

3(1)、使用 if 判断式

举个简单的例子:
在这里插入图片描述
上图中,主逻辑就一小段,但是为了异常处理写一大段的 if 语句,会导致代码的可读性非常差。
在这里插入图片描述

3(2)、使用python提供的异常处理

python为每一种异常定制了一个类型,然后提供了一种特定的语法结构用来进行异常处理

try:
    被检测的代码块
except 异常类型:
    try中一旦检测到异常,就执行这个位置的逻辑

举个例子:根据上图的逻辑
在这里插入图片描述
解释:把异常赋值给了e。并且第一段的主逻辑触发了异常,直接跳到下面,第二段的主逻辑并没有运行。

4、多分支

上面那种方式只能处理一个异常,如果有其他异常则处理不了。跟 if 语句一样,同样可以设置多分支来处理多种异常。
在这里插入图片描述
设置多个 except 语句来设立多分支

5、万能异常

跟 if 语句一样,有个跟 else 一样的 “ Exception ”, Exception 可以捕捉到任何异常:

except Exception 

对于多分支和万能异常:
1、如果想要的效果是无论出现什么异常,我们统一丢弃,或者使用同一段代码逻辑去处理他们,那么此时一个Exception就够了。
2、如果想要的效果是,对于不同的异常需要定制不同的处理逻辑,那就需要用到多分支了(一个except处理一个异常)。

6、异常的其他机构

异常里还有 else 跟 finally,看下图:
在这里插入图片描述

7、主动触发异常

这个前面学到过,用的是 raise
在这里插入图片描述

8、自定义异常

异常也是个类,同样可以自定义

先上一个结论:自定制一个异常必须继承一个异常的基类。

我们先来看下普通的 TypeError :
在这里插入图片描述
同样的,我们也可以自定制一个简单的异常:

在这里插入图片描述
注意:这个自定制异常继承了 BaseException 。

9、断言

先看下断言是什么:
在这里插入图片描述
如果不对就会错误,抛出异常,同时停止运行

在这里插入图片描述
断言也可以用 if 来代替,不过断言更简洁一点。

10、总结

在这里插入图片描述
在这里插入图片描述

什么时候用异常处理

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值