博客
关于我
python 0基础 第十二节 异常处理
阅读量:544 次
发布时间:2019-03-09

本文共 1366 字,大约阅读时间需要 4 分钟。

一. 错误与异常

1. 错误

错误是代码不符合解释器或编译器的语法要求。

2. 常见异常

下面是Python中的几种常见异常及其原因:

  • AttributeError:属性错误,特性引用和赋值出现错误。
  • NameError:试图访问的变量不存在。
  • SyntaxError:代码存在语法错误。
  • KeyError:使用的映射中不存在的关键字。
  • IndexError:索引超出序列范围。
  • TypeError:内建操作或函数应用了错误的类型。
  • ValueError:传给对象的参数类型不正确。

3. 异常结构

所有异常都是/baseexception/的子类,主要分为以下几种:

  • SystemExit:程序退出。
  • KeyboardInterrupt:用户手动中断。
  • GeneratorExit:生成器完成。
  • Exception:普通异常。

4. 错误回溯

通过错误回溯可以查看错误的原因、执行行数以及具体代码。例如,结合下图可以看到错误发生在文件中的某一行某次操作。

5. 异常处理

A. 基本语法

使用try-except结构来捕捉和处理异常:

try:    # 可能出现错误的代码except:    # 捕捉到异常的处理方案
B. 捕获具体异常

当已知具体异常类型时,可以如下捕获:

try:    print(a)except NameError as e:    print(f'捕获异常如下:{e}')

此时如果a未定义,会输出捕获异常如下:name 'a' is not defined。

C. 捕获多种异常

可以在一个except中捕获多个异常:

try:    # 可能出现错误的代码except (TabError, NameError):    # 捕捉到异常的处理方案
D. 不确定异常类型时

使用Exception作为捕获范围:

try:    # 可能出现错误的代码except Exception:    # 捕捉到异常的处理方案

6. Exception 补充

  • 所有代码中的异常都是Exception的子类。
  • 异常的捕获是从上到下依次对比,找到第一个匹配项,不会继续往后查找。

7. 进阶异常处理

结合try-except-else-finally结构处理异常:

try:    # 可能出现错误的代码except Exception as e:    # 捕捉到异常的处理方案else:    # 没有异常执行finally:    # 不管是否出现错误都会执行

二. 主动抛出异常

1. 主动抛出异常

可以使用raise关键字主动抛出异常:

raise ValueError('自定义错误信息')
2. 自定义异常

可以创建自己定义的异常类继承自Exception:

class CustomException(Exception):    passraise CustomException('自定义错误')

三. 断言

  • 断言是代码中强制要求条件满足的设计。
  • assert后面跟条件,条件不满足会抛出AssertionError,同时可以传递错误信息。
  • 示例:判断1是否等于2,结果为false,抛出错误:
    assert 1 == 2, '1不等于2'

    结果为AssertionError: 1不等于2

转载地址:http://sowsz.baihongyu.com/

你可能感兴趣的文章
Python基础 | 关于“循环”那些事
查看>>
python系列【仅供参考】:python之subprocess模块rsync拉取文件
查看>>
python系列【仅供参考】:python 远程rdp
查看>>
python基础
查看>>
Python基本语法与变量类型
查看>>
python基本数据类型(容器)- tuple list dict set
查看>>
python基本工资的调整方案_Python薪资又涨了!这可咋办!
查看>>
Python基准测试和性能分析内存管理和垃圾回收
查看>>
Python基于RESTful风格的接口自动化测试实战
查看>>
python基于flask搭建http服务(四)—— Docker容器化部署
查看>>
python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
查看>>
python基于flask搭建http服务(三)—— 使用gunicorn部署项目
查看>>
python基于flask搭建http服务(一)—— 实现数据查询和Excel导出
查看>>
Python块键盘/鼠标输入
查看>>
python在心理学研究中的应用有哪些_心理学在线研究可用平台简介和应用进展
查看>>
python在使用HTMLTestRunner时,报告为空,错误提示<_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf_8'>...
查看>>
python在gpu上运行_【python】python开启GPU加速
查看>>
Python在def函数中使用for循环
查看>>
Python在def函数中使用for循环
查看>>
Python在Conda环境中,但在Windows虚拟环境中没有激活
查看>>