Python 标准异常总结

在我们编写脚本或者进行软件开发过程中总会遇见很多的异常和错误,而Python里面有两个非常重要的功能,能够很好的处理异常和任何意外错误,这两个功能就是异常处理和断言。

异常处理:主要包含语法错误和其他的标准异常,标准异常介绍如下表。

断言:断言是一种理智检查,当程序的测试完成,你可以打开或关闭。断言的最简单的方法就是把它比作 raise-if 语句 (或者更准确,加 raise-if-not 声明). 一个表达式进行测试,如果结果出现 false,将引发异常。断言是由 assert 语句,在Python中新的关键字,在Python1.5版本中引入使用的关键字。

程序员常常放置断言来检查输入的有效,或在一个函数调用后检查有效的输出。

一、标准异常表

异常名称

描述
Exception  

所有异常的基类

 
StopIteration  

当一个迭代器的 next()方法不指向任何对象时引发

 
SystemExit  

由 sys.exit()函数引发

 
StandardError  

除了StopIteration异常和SystemExit,所有内置异常的基类

 
ArithmeticError  

数值计算所发生的所有错误的基类

 
OverflowError  

当数字类型计算超过最高限额引发

 
FloatingPointError  

当一个浮点运算失败时触发

 
ZeroDivisonError  

当除运算或模零在所有数值类型运算时引发

 
AssertionError  

断言语句失败的情况下引发

 
AttributeError  

属性引用或赋值失败的情况下引发

 
EOFError  

当从 input() 函数输入,到达文件末尾时触发

 
ImportError  

当一个 import 语句失败时触发

 
KeyboardInterrupt  

当用户中断程序执行,通常是通过按 Ctrl+c 引发

 
LookupError  

所有查找错误基类

 

IndexError

KeyError

 

当在一个序列中没有找到一个索引时引发

当指定的键没有在字典中找到引发

 
NameError  

当在局部或全局命名空间中找不到的标识引发

 

UnboundLocalError

EnvironmentError

 

试图访问在函数或方法的局部变量时引发,但没有值分配给它。

Python环境之外发生的所有异常的基类。

 

IOError

IOError

 

当一个输入/输出操作失败,如打印语句或 open()函数试图打开不存在的文件时引发

操作系统相关的错误时引发

 

SyntaxError

IndentationError

 

当在Python语法错误引发;
没有正确指定缩进引发。

 
SystemError  

当解释器发现一个内部问题,但遇到此错误时,Python解释器不退出引发

 
SystemExit   当Python解释器不使用sys.exit()函数引发。如果代码没有被处理,解释器会退出。  
   

当操作或函数在指定数据类型无效时引发

 
ValueError   在内置函数对于数据类型,参数的有效类型时引发,但是参数指定了无效值  
RuntimeError  

当生成的错误不属于任何类别时引发

 
NotImplementedError  

当要在继承的类来实现,抽象方法实际上没有实现时引发此异常

 

异常示例:

1、FileNotFoundError
尝试打开文d:\\openstack.txt文件由于文件不存在就会报出FIleNotFoundError:
f=open("d:\\openstack.txt")
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    f=open("d:\\openstack.txt")
FileNotFoundError: [Errno 2] No such file or directory: 'd:\\openstack.txt'
 
2、ZeroDivisionError
除法运算或取模运算中,除数为零的情况
 >>> 5/0
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    5/0
ZeroDivisionError: division by zero
3、ImportError
一般是在导入模块时,由于模块不存在等原因导致报错
>>> import  wwww
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    import  wwww
ImportError: No module named 'wwww'
4、ValueError
 一般是由于传入参数的数据类型错误引起报错。
 >>> a="sterc"
>>> int(a)
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    int(a)
ValueError: invalid literal for int() with base 10: 'sterc'
>>>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/65b01a5baba1a4e354b1d3a63f502954.html