【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

时间:2022-11-06 09:59:41

拆包


拆包:对于函数中的多个返回数据,去掉元组、列表或者字典,直接获取里面数据的过程。

列表的拆包

【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

元组的拆包

【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

异常种类


异常的定义

异常: 异常是程序执行过程中出现的非正常流程现象。

针对程序出现的异常现象要制定合理有效的处理方案, 不仅要避免异常现象的出现, 还要在异常出现后设计针对性的有效处理方案。

  • 当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常" 。 【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

异常的分类

异常 意思
AttributeError 试图访问一个对象没有的属性
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下标索引超出序列边界
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译
TypeError 传入对象类型与要求的不符合
ValueError 传入一个调用者不期望的值

异常处理


捕获异常格式

语法格式一

try:

   可能引发异常现象的代码   或 不确定是否能够正常执行的代码                 

except 异常类型:

    出现异常现象的处理代码  或 编写尝试失败的代码

【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

  • 正常输出报错内容【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常
Exception- 万能异常
  • Exception是万能异常,可以捕获任何异常【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

语法格式二

try:

  可能引发异常现象的代码         

except: (可以没有)

  出现异常现象的处理代码         

else:

   未出现异常现象的处理代码 
  • if……except……else中如果没有捕获到异常,那么就执行else中的代码。 【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

语法格式三

try: 必选

      可能引发异常现象的代码         

except: 必选: 二选一

      出现异常现象的处理代码         

else: 可选

       未出现异常现象的处理代码         

finally: 必选:二选一

       try代码块结束后运行的代码
  • finally无论是否有异常,都会执行代码。 【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常

抛出异常:raise


使用步骤

  • 创建一个Exception('xxx')对象, xxx表示异常提示信息
  • raise抛出这个对象 【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常【Python零基础入门篇 · 16】:拆包、异常种类、异常处理、抛出异常