- 1.简介
- python文件无法正常执行的时候就会发生一个异常并终止程序
- 异常是一种事件,是python对象,表示一个错误
- 当我们希望在发生异常时继续执行程序时,需要处理异常
- 2.捕获异常 try.....except
- try:
- 可能会发生异常的代码
- except:
- 有异常才会进入的代码块
- 发生异常,跳过try代码块发生异常后的语句,直接执行except
- 一个try可以接多个except ,但是最大的(Exception) 要放在后面
- except: 捕获所有异常(无法得到详细信息,如果想得到信息)
- except xxxError as err: 捕获精准异常
- except (xxxError,yyyError) as err: 捕获多个异常,把多个异常写入元组中
- except Exception as err: Exception 常规错误的基类
- err 为捕获的异常消息
- try:
- 3.try....except....else....finally
- else 为没有捕获到异常执行的语句
- finally 无论异常是否发生,都会执行的语句 (适用于文件操作,数据库操作)
- 注意:如果在一个函数中。只要有finally 都会执行里面的语句(不管前面有没有return)
- 如果在异常发生之前 有return 那么跳过except,else 语句块
- 4.异常传递
- 如果try嵌套,那么如果里面的try没有捕获到这个异常,那么外面的try会接收到这个异常,然后进行处理,如果外边的try依然没有捕获到,那么再进行传递。
- try..else 是错误语法
- 函数中,当函数a中有异常但没有try...except 处理异常,当函数b中调用函数a时,可以在函数b中使用try...except 捕获处理函数a产生的异常
- 5.自定义异常
- 1.系统默认抛出异常
- 2.主动抛出异常
- 1.抛出系统异常
- 2.抛出自定义异常
- 步骤
- 1.自定以一个异常子类
- class 子类(Exception):
- def __init__(self,message):
- super().__init__()
- self.message=message -->message 错误信息
- class 子类(Exception):
- 2.使用自定义异常
- 符合题目要求的情况下,创建自定义异常子类的对象,并使用 raise 抛出 异常子类对象
- 3.处理异常
- try:
- raise 异常对象
- except: 自定义异常子类 as 自定义异常对象:
- print(自定义异常对象.message) --> 打印错误信息
- super().__init__()
- 这一行代码,可以调用也可以不调用,建议调用,因为__init__方法往往是用来对创建完的对象进行初始化工作,
- 如果在子类中重写了父类的__init__方法,即意味着父类中的很多初始化工作没有做,这样就不保证程序的稳定了,
- 所以在以后的开发中,如果重写了父类的__init__方法,最好是先调用父类的这个方法,然后再添加自己的功能。
- try:
- 1.自定以一个异常子类
python 异常及处理
最新推荐文章于 2021-01-05 11:05:39 发布