Python异常类的继承关系

原创 2016年08月29日 10:26:21

在Python中,各种异常错误都是类,所有的错误类型都继承于BaseException

在用try...except...finally...机制处理异常的时候,一定要注意异常的继承关系。

例如在except中如果有StandardError,那么永远也捕获不到ValueError,因为ValueErrorStandardError的子类,如果有,也被StandardErrorexcept给捕获了。

下面是常见异常类型的继承关系:

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StandardError
      |    +-- BufferError
      |    +-- ArithmeticError
      |    |    +-- FloatingPointError
      |    |    +-- OverflowError
      |    |    +-- ZeroDivisionError
      |    +-- AssertionError
      |    +-- AttributeError
      |    +-- EnvironmentError
      |    |    +-- IOError
      |    |    +-- OSError
      |    |         +-- WindowsError (Windows)
      |    |         +-- VMSError (VMS)
      |    +-- EOFError
      |    +-- ImportError
      |    +-- LookupError
      |    |    +-- IndexError
      |    |    +-- KeyError
      |    +-- MemoryError
      |    +-- NameError
      |    |    +-- UnboundLocalError
      |    +-- ReferenceError
      |    +-- RuntimeError
      |    |    +-- NotImplementedError
      |    +-- SyntaxError
      |    |    +-- IndentationError
      |    |         +-- TabError
      |    +-- SystemError
      |    +-- TypeError
      |    +-- ValueError
      |         +-- UnicodeError
      |              +-- UnicodeDecodeError
      |              +-- UnicodeEncodeError
      |              +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
	   +-- ImportWarning
	   +-- UnicodeWarning
	   +-- BytesWarning

版权声明:本文为博主原创文章,未经博主允许不得转载。

子类异常和父类异常捕获的关系

class ExampleA extends Exception{ private String a=null; //这里必须加上无参的构造函数,因为自己定义了有参的构造函数,则会覆盖原来无参构造...
  • JY_He
  • JY_He
  • 2015年11月08日 21:56
  • 3332

子类异常和父类异常捕获的关系

class ExampleA extends Exception{ private String a=null; //这里必须加上无参的构造函数,因为自己定义了有参的构造函数,则会覆盖原来无参构造...
  • JY_He
  • JY_He
  • 2015年11月08日 21:56
  • 3332

Python 异常继承体系

Python 异常继承体系(version python3.4) The class hierarchy for built-in exceptions is: BaseException ...
  • gaoxin12345679
  • gaoxin12345679
  • 2015年07月23日 09:55
  • 361

python异常处理体系

Python的异常处理能力是很强大的,可向用户准确反馈出错信息。本文将对Python异常处理体系进行简单介绍。 Python内建异常体系结构 The class hierarchy for b...
  • esonbest1234
  • esonbest1234
  • 2016年02月24日 11:44
  • 198

Python实例浅谈之二自定义异常

一、问题        Python中标准异常集包含的内容已经相当广泛,但有时开发中还须创建自己的异常,比如在特定的标准异常和模块异常中添加额外的信息。        本例中两个异常都与IOErro...
  • taiyang1987912
  • taiyang1987912
  • 2015年03月09日 16:25
  • 4281

Python基本语法_异常处理详解

目录目录 异常 异常类型 异常处理 触发异常raise 传递异常 assert语句触发异常 捕获异常tryexceptelse 捕捉多个异常 tryfinally语句 自定义异常 withas触发异常...
  • Jmilk
  • Jmilk
  • 2015年11月26日 01:40
  • 5280

python 自定义异常和异常捕捉

异常捕捉: try: … raise Exception(“xxxxx”) except (Exception1,Exception2,……): …1.raise 语句可以自定义报...
  • flyingshuai
  • flyingshuai
  • 2017年06月20日 10:58
  • 2982

python 爬虫异常的处理

1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本机无法上网连接不到特定的服务器服务器不存在 在代码中,我们需要用try-except语句来包围并捕获...
  • chuchuxueren
  • chuchuxueren
  • 2018年01月16日 13:38
  • 38

python-网络爬虫初学三:网络异常的捕获

一、URLError产生原因 # 网络无连接,即本机无法上网 # 连接不到特定服务器 # 服务器不存在 # 使用try-except捕获异常 request = urllib2.Request("h...
  • Hz_ZDeveloper
  • Hz_ZDeveloper
  • 2017年04月17日 10:14
  • 810

python 主线程捕获子线程异常

最近,在做一个项目时遇到的了一个问题,主线程无法捕获子线程中抛出的异常。 先看一个线程类的定义''' Created on Oct 27, 2015 @author: wujz ''' import...
  • linchere
  • linchere
  • 2015年11月02日 16:17
  • 3370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python异常类的继承关系
举报原因:
原因补充:

(最多只允许输入30个字)