Python 异常锦集【转】

BaseException:

所有内建异常的基础类。

Exception:

所有的内建的、非系统预置的异常均继承这个类,所有用户定义的异常也应该继承这个类。

StandardError:

所有内建异常的基础类,除了StopIteration,GeneratorExit, KeyboardInterruptSystemExitStandardError是继承Exception而来的。

ArithmeticError:

一些内建算术错误异常的基类,如:OverflowError, ZeroDivisionError,FloatingPointError.

LookupError:

当一个键值或索引在数组或序列中无效时所触发的所有异常的基类: IndexError,KeyError. 它也会由sys.setdefaultencoding()直接触发。

EnvironmentError:

所有能发生在Python系统之外的异常的基类:IOError, OSError.

AssertionError:

当判定条件失败时,触发此异常。

AttributeError:

当一个属性被引用或赋值时出现错误会引发此异常(当一个对象不支持属性被引用或赋值时,会触发TypeError异常)

EOFError:

当内建函数(input()raw_input())达到文件尾时触发此异常。(注意:文件对象的read()readline()方法处理方法不同,当遇到到达文件尾部的情况时会返回空字符串)

FloatingPointError:

浮点操作失败时触发此异常。

GeneratorExit:

当调用生成器的close() 方法时,触发此异常。它直接继承了Exception 用于替代 StandardError ,毕竟这是一个技术手段并不是一个错误异常。 2.5版本新加特性。

IOError:

当I/O操作(如一个 print 语句、内建 open()函数或调用文件对象的某个方法)因为I/O相关的问题而失败时触发此异常,例如:“无此文件”或“没有足够的磁盘空间”。这个类继承于EnvironmentError

ImportError:

import 语句无法找到对应的模块定义或 from…import 无法找到对应名字的内容时触发此异常。

IndexError:

当一个序列子集超出范围时触发此异常。(索引会被截取以保证在合理的范围内; 如果索引x不是一个整数,TypeError异常会被触发)

KeyError:

当键值并不存在于图(字典)中,会触发此异常。

KeyboardInterrupt:

当用户按下终止键时触发此异常(通常是Ctrl+C或者Delete键)。

MemoryError:

当某些操作导致内存耗尽但应能恢复的情况下(通过删除一些对象来释放内存),触发此异常。

NameError:

当无法找到对应名字的本地变量或全局变量时,触发此异常。这只针对无效的名字。 附带参数是包含了无法找到的名字的错误信息。

NotImplementedError:

这个异常继承于 RuntimeError. 用户定义基类后,抽象方法可以触发这个异常来要求派生类必须实现该抽象方法。

OSError:

这个类继承于 EnvironmentError ,主要用于os模块的os.error异常。

OverflowError:

当一个算术运算太大导致数值溢出时触发此异常。

ReferenceError:

weakref.proxy()函数产生一个弱引用代理时,此异常被触发。弱引用代理通常访问一个被引用对象的属性,但这个对象已经被垃圾回收。更多的弱引用信息,请参考weakref模块。

RuntimeError:

当一个无法分类的错误发生时,触发该异常。

StopIteration:

当一个迭代器的 next() 方法无法获得更多的值时,触发该异常。

SyntaxError:

当语法解析器遇到语法错误时触发此异常。

SystemError:

当解释程序遇到一个内部错误,但是情况看来可以纠正,不需要放弃退出。辅助参数是一个字符串,标明在更顶层什么出错了。

SystemExit:

这个异常被 sys.exit() 函数触发。当这个异常没有被有效处理,Python终止程序并退出;没有堆栈信息打印。如果辅助参数是整数,它表示系统退出状态(和C语言的exit()函数类似);如果它是空则退出状态为0;如果它是其它类型(例如字符串),这个对象会被打印输出,并且退出状态为1。

TypeError:

当一个操作或函数调用一个不恰当的对象类型时,触发此异常。附带参数是一个字符串,表明具体的不匹配的类型。

UnboundLocalError:

当在一个函数或方法内引用本地变量但变量并没有赋值时,触发此异常。

UnicodeDecodeError:

当一个Unicode相关的编码、解码错误发生时,触发此异常。它是ValueError的子类。

UnicodeEncodeError:

在文字编码时发生一个Unicode相关的错误则触发此异常。它是UnicodeError的子类。

UnicodeError:

在文字解码时发生一个Unicode相关的错误则触发此异常。它是UnicodeError的子类。

UnicodeTranslateError:

在转换文字编码时,当一个Unicode相关的错误发生,触发此异常。它是UnicodeError的子类。

ValueError:

当一个内建操作或函数接收了参数,参数的类型是对的但值并不符合并且无法匹配一个更加精准的异常(例如:IndexError),触发此异常。

WindowsError:

当Windows系统下特定的错误发生或当错误编号无法映射 errno值时,触发此异常。

ZeroDivisionError:

当除法或取余操作分母为0时,触发此异常。附带的参数是一个文字信息,标明了运算类型和具体运算数据。

热评文章