博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python_异常处理_断言
阅读量:6261 次
发布时间:2019-06-22

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

一、Python标准异常

常用异常
Exception 常规错误的基类
AttributeError 试图访问一个对象没有的属性
IOError 输入/ 输出异常,基本上是无法打开文件
ImportError 无法引入模块或包,一般为路径或名称错误
IndentationError 语法错误,代码没有正确对齐(缩进错误)
IndexError 下标索引超出序列边界
KeyError 试图访问字典里不存在的键
keyboardInterrupt Ctrl+C被按下
NameError 使用一个未被赋予的变量
SyntaxError Python代码非法,代码不能编译
UNboundLocalError 试图访问一个还未被设置的局部变量
ValueError 传入一个调用者不期望的值,即类型是正确的
TypeError 对类型无效的操作
标准异常
BaseException 所有异常的基类
SystemExit 解释器请求退出
Stoplteration 迭代器没有更多的价值
GeneratorExit 生成器(generator)发送异常来通知退出
StandarError 所有的内建标准异常的基类
ArithmeticError 所有数值计算错误的基类
FloatingPointError 浮点计算错误
OverflowError 数值运算超出最大限制
ZerodivisionError 除(或取模)零(所有数据类型)
AssertionError 断言语句失败
EOFError 没有内建输入,到达EOF标记
EnvironmentError 操作系统错误的基类
OSError 操作系统错误
WindowsError 系统调用失败
ImportError 无效数据查询的基类
MemoryError 内存溢出错误
ReferenceError 弱引用(weak reference)试图访问已经垃圾回收了的对象
RuntimeError 一般的运行时的错误
NotlmplementedError 尚未实现的方法
TabError Tab和空格混用
SystemError 一般的解释器系统错误
 UnicodeError  Unicode相关的错误
 UnicodeDecodeError Unicode解码时的错误 
 UnicodeEncodeError Unicode编码时错误 
 UnicodeTranslateError Unicode转换时错误 
 Warning 警告的基类 
DeprecationWarning 关于被弃用的特征的警告
Futurewarning 关于构造将来语义会有所改变的警告
OverflowWarning 旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning 关于特性将会被废弃的警告
RuntimeWarning 可疑的运行时行为(runtime behavior)的警告                                                       
SyntaxWarning 可疑的语法的警告
UserWarning 用户代码生成的警告

 二、异常处理

1.

捕获异常基础写法
>>34值 35>>s{invalid literal for int() with base 10: 's'} 我是一个错误。。>>
result

2.

def yichang():    while(True):        try:            num = int(input('>>'))      # 字符无法强制转换为整型            num = num+1            print("值",num)        except (ValueError ,TypeError) as e:            print("我是一个调用者不期望的错误。。。",e)        except Exception as e:         # e 是try ..except .. 捕获到的异常,Exception 是基类(可以捕获全部的异常)            print('{%s} 我是一个错误。。'% e)        else:            print("要是上面没有错会执行我。。else")        finally:            print('不管上面错不错误【都会】执行我。。finally,yes,yes!!')            yichang()
异常处理完全~版~,yes!!
>>1值 2要是上面没有错会执行我。。else不管上面错不错误【都会】执行我。。finally,yes,yes!!>>d我是一个调用者不期望的错误。。。 invalid literal for int() with base 10: 'd'不管上面错不错误【都会】执行我。。finally,yes,yes!!>>
result

三、断言(assert)

明确的判断前面的某个条件是否符合你的要求,如果不符合,程序就是根本走不下去的错误,直接退出或抛出错误。例如:连接远程的ftp , 没有IP地址,就根本连接不上

q=2try:    assert q == 1+1    assert q ==1+2      # 错误可以被抓住,但对于 这种错误最好不要去抓except Exception as e:    print('我是被抓住的错误。。。%s' % e)assert q ==1+1assert 1 == 1+2
断言
我是被抓住的错误。。。Traceback (most recent call last):  File "D:/1.pycharm/day2018_11_15/断言.py", line 21, in 
assert 1 == 1+2AssertionError
result

关于断言:https://www.cnblogs.com/shangren/p/8038935.html

 

断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置。

异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性。

 

 

 

转载于:https://www.cnblogs.com/Vera-y/p/9966055.html

你可能感兴趣的文章
Electron开发环境部署
查看>>
MAC下安装MAMP的PHPredis扩展
查看>>
通过函数指针调用函数
查看>>
苹果虚拟机显示卡顿
查看>>
对代码评审的感想(回忆篇)
查看>>
LOJ#6437. 「PKUSC2018」PKUSC
查看>>
[学习笔记]同余
查看>>
报表开发工具中开放的部分图表js接口列表
查看>>
如何实现 Python 中 selnium 模块的换行
查看>>
Scut游戏服务器引擎6.0.5.0发布-支持C#脚本
查看>>
有关FPGA
查看>>
[caffe(二)]Python加载训练caffe模型并进行测试2
查看>>
javasrcipt——正则
查看>>
事务的特性——ACID
查看>>
VUE页面渲染问题
查看>>
day38——多进程Manager、进程池
查看>>
Asp.Net 弹出窗体始终在顶层方法
查看>>
C语言字符串函数总结--<转载>
查看>>
POJ 1185 炮兵阵地[状态压缩DP]
查看>>
POJ 2369 Budget【有上下界的最大流】
查看>>