Python内置异常类

Python自身带了许多已经定义好了的异常类,内置的异常阶层如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StopAsyncIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      |    +-- ModuleNotFoundError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      |    +-- RecursionError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- ResourceWarning

BaseException

所有内置异常的基类(父类)。用户定义的类不能直接继承BaseException,可以继承BaseException的子类Exception。如果对此类的实例调用str(),则返回该实例的参数,或者在没有参数时返回空字符串。

args
为异常构造函数提供参数的元组。一些内置的异常(如OSError)需要一定数量的参数,并为这个元组的元素赋予特殊的含义,而其他的通常只需要一个给出错误消息的字符串。

with_traceback(tb)
此方法将tb设置为异常的新回溯,并返回异常对象。它通常用于异常处理代码,如:

1
2
3
4
5
try:
    ...
except SomeException:
    tb = sys.exc_info()[2]
    raise OtherException(...).with_traceback(tb)

Exception

所有内置的、非系统退出的异常都是从此类派生的。所有用户定义的异常也应直接或间接地从此类派生。

自定义异常类

除了python提供的内置异常类意外,我们还可以自己定义异常类。自定义异常类应该直接或间接地从 Exception 类派生。

定义格式

1
2
class 异常名(Exception):
    pass

例如:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
class MyError(Exception):

    def __init__(self,ErrorInfo):
        #初始化父类
        super().__init__(self)
        self.errorinfo=ErrorInfo

    def __str__(self):
        return self.errorinfo

try:
    raise MyError('我的异常')
except MyError as e:
    print(e)    #输出 我的异常

转载请注明本网址。