自定义异常

#尽管内建异常类包括了大部分异常,而且可以满足很多要求,但有时还是要自己创建自己的异常类。比如要精确知道问题的根源,就需要使用自定义异常精确定位问题。可以通过创建一个新exception类拥有自己的异常。异常应该继承自Exception类,可以直接继承,也可以间接继承。
#因为错误就是类,捕获一个错误就是捕获该类的一个实例,因此错误并不是凭空产生的,而是由一些不合理的部分导致的。Python的内建函数会抛出很多类型的错误,我们自己编写的函数也可以抛出错误,如果要抛出错误,那么可以根据需要定义一个错误的类,选择好继承关系,然后用raise语句抛出一个错误的实例。
#例如:
 1 #!/usr/bin/python3
 2 #-*-coding:UTF-8-*-
 3 #异常9.9
 4 
 5 class MyError(Exception):
 6     def __init__(self):
 7         pass
 8 
 9     def __str__(self):
10         return 'This is self define error'
11 
12 def my_error_test():
13     try:
14         raise MyError()
15     except MyError as e:
16         print('exception info:',e)
17 
18 my_error_test()
#执行结果如下:
1 D:\Pythonworkspace>python 异常9.9.py
2 exception info: This is self define error
#由程序和执行结果看到,程序正确执行了自定义的异常,并且需要继承Exception类。
#异常最好以Error结尾,一方面贴近标准异常,另一方面便于见名知意。
posted @ 2018-01-04 08:48  爱你无目的  阅读(214)  评论(0编辑  收藏  举报