Python 还支持断言语法。在一套程序完成之前,编程者并不知道程序可能会在哪里报错,或是触发何种条件的报错,因此使用断言语法可以有效地做好异常检测,并适时触发和抛出异常。

Python 中使用 assert 语句声明断言,其语法为:

assert 表达式 [, "断言异常提示信息"]

Python 首先检测表达式结果是否为 True,若为 True 则继续向下执行,否则将触发断言异常,并显示断言异常提示信息,后续代码捕获该异常并做进一步处理。例如:

def testAssert(x):

assert x < 1,'无效值'

print ("有效值")

testAssert(1)

上述代码的运行结果如下所示:

>>> def testAssert(x):

...          assert x < 1,'无效值'

...          print ("有效值")

>>> testAssert(1)

Traceback (most recent call last):

File "", line 1, in

testAssert(1)

File "", line 2, in testAssert

assert x < 1,'无效值'

AssertionError: 无效值

可见,当 assert 语句判断的表达式结果为 False 时触发了断言异常,此时可以使用 try…except 语句捕获并做进一步处理,例如:

def testAssert(x):

assert x < 1, '无效值'

print("有效值")

try:

testAssert(1)

except Exception:

print("捕获成功")

上述代码的运行结果如下所示:

>>> def testAssert(x):

...          assert x < 1, '无效值'

...          print("有效值")

>>> try:

...         testAssert(1)

...     except Exception:

...         print("捕获成功")

捕获成功

Python解释器内置的预定义标准异常如表 1 所示。

表 1:Python 解释器内置的预定义标准异常

异常名称

描述

ArithmeticError

所有数值计算错误的基类

AssertionError

断言语句失败

AttributeError

对象无此属性

BaseException

所有异常的基类

DeprecationWarning

关于被弃用的特征的警告

EnvironmentError

操作系统相关的错误的基类

EOFError

到达文件尾(EOF, End-of-File)错误

Exception

常规错误的基类

FloatingPointError

浮点计算错误

FutureWarning

关于将来语义会有改变的警告

GeneratorExit

生成器发生异常通知退出

ImportError

引入模块/对象失败

IndentationError

缩进错误

IndexError

序列中无此索引

IOError

输入/输出操作失败

Keyboardlnterrupt

用户中断执行

KeyError

映射中无此键

LookupError

无效数据查询的基类

MemoryError

内存溢出错误

NameError

未声明/初始化对象,名称调用错误

NotImplementedError

尚未实现的方法

OSError

操作系统错误

OverflowError

数值运算超出最大限制

PendingDeprecationWarning

关于特性将会被废弃的警告

ReferenceError

弱引用试图访问已经被回收的对象

RuntimeError

一般运行时错误

RuntimeWarning

运行时行为警告

StandardError

所有内建标准异常的基类

StopIteration

迭代器没有更多的值

SyntaxError

Python语法错误

SyntaxWarning

语法警告

SystemError

一般的解释器系统错误

SystemExit

解释器请求退出

TabError

Tab和空格混用

TypeError

对类型无效的操作

UnboundLocalError

访问未初始化的本地变量

UnicodeDecodeError

Unicode解码错误

UnicodeEncodeError

Unicode编码错误

UnicodeError

Unicode相关错误

UnicodeTranslateError

Unicode转换错误

UserWarning

用户代码生成的警告

ValueError

传入无效参数

Warning

各种警告的基类

WindowsError

系统调用失败

ZeroDivisionError

除(或取模)零错误

python中oserror捕获_Python assert异常处理(一看即懂)相关推荐

  1. Python中的浅拷贝和深拷贝(一看就懂!!!)

    浅拷贝和深拷贝一直傻傻的分不清,甚至有时候会理解反.今天就简单总结一下python中的浅拷贝和深拷贝. 总结 最直观的理解就是: 1.深拷贝,拷贝的程度深,自己新开辟了一块内存,将被拷贝内容全部拷贝过 ...

  2. python中if控制语句_Python 极简教程(十二)逻辑控制语句 if else

    计算机软件之所以能够对不同的情况进行不同的处理,就是我们在编码的时候,通过逻辑控制语句,告诉软件在不同的情况下应该做什么处理. 比如我们在登录的时候,那么当你输入正确的账号密码和错误的账号密码,完全是 ...

  3. python中exception方法_python中try except处理程序异常的三种常用方法

    如果你在写python程序时遇到异常后想进行如下处理的话,一般用try来处理异常,假设有下面的一段程序:try: 语句1 语句2 . . 语句N except .........: do someth ...

  4. python中config命令_Python config.config方法代码示例

    本文整理汇总了Python中config.config方法的典型用法代码示例.如果您正苦于以下问题:Python config.config方法的具体用法?Python config.config怎么 ...

  5. li在python中啥意思_Python中*和**的区别

    在Python中,(*)接收的参数,将形成一个元组,(* *)将接收到的参数存储在一个字典.我们可以看到,任何长度的foo方法可以接收参数并把它们存储在一个元组\u2026打印(args)\u2026 ...

  6. python中的常量_Python中的变量和常量

    本文主要介绍Python中的变量和常量,包括变量的命名规范,使用注意事项 -------------- 完美的分割线 --------------- 1.变量 1.1.变量理解 1)什么是变量 变量即 ...

  7. python中定义数据结构_Python中的数据结构—简介

    python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...

  8. python中assert_在Python中带有示例的assert关键字

    python中assert Python断言关键字 (Python assert keyword) assert is a keyword (case-sensitive) in python, it ...

  9. 异常处理python 空气质量问题_python的异常处理

    异常处理 什么是异常? 首先要清楚,什么是异常,异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止),在python中,错误触 ...

最新文章

  1. Nginx负载均衡的详细配置及使用案例
  2. MySQL的主从服务器配置
  3. R语言scan函数读取文件为向量或者列表格式实战
  4. PHP开发中常见的安全问题详解和解决方法
  5. Linux下的各种文件阅读器
  6. 进入DRF和ANGULAR的整合学习,这三篇入门内容一定要学好的
  7. 了解回归:迈向机器学习的第一步
  8. 持续集成与自动化部署 - jenkins sonar代码质量管理平台 部署和基础使用(五)...
  9. LeetCode MySQL 1571. 仓库经理
  10. panasonic 松下被黑
  11. OFDM系统MATLAB仿真
  12. asp.net 两个控件放一行_思维导图?试试这两个宝藏网站吧
  13. Building Web Parts for Microsoft SharePoint Products and Technologies
  14. 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_35、事务介绍和常见的隔离级别,传播行为...
  15. MySQL数据库无法启动的简单排错
  16. 《嵌入式-STM32开发指南》第三部分 外设篇 - 第5章 光敏传感器
  17. Pointer Network指针网络
  18. 英语在线听力翻译器_英语翻译_在线英语听力室
  19. App Thinning(为什么苹果app上传时的包比在appStore下载下来的包大很多)
  20. MIPI DSI转LVDS东芝TC358775XBG视频解码芯片,RK3399点LVDS屏必备

热门文章

  1. 官网免费下载VMware Workstation Pro及VMware Player[无需注册]
  2. Python import容易犯的一个错误
  3. 项目之爬虫入门(豆瓣TOP250)
  4. Typora Mermaid 使用指南
  5. ZT pthread_detach
  6. 给输入框添加自动检索的功能
  7. 201521123083《Java程序设计》第11周学习总结
  8. C# 程序实现功能目录
  9. Javascript浅谈之this
  10. Hive查看表的分区字段