抛出异常

#Python使用raise语句抛出一个指定异常。我们可以使用类(exception的子类)或实例参数调用raise语句引发异常。使用类时程序会自动创建实例。
#例如:
 1 >>> raise Exception
 2 Traceback (most recent call last):
 3   File "<pyshell#0>", line 1, in <module>
 4     raise Exception
 5 Exception
 6 >>> raise NameError('This is NameError')
 7 Traceback (most recent call last):
 8   File "<pyshell#1>", line 1, in <module>
 9     raise NameError('This is NameError')
10 NameError: This is NameError
#由操作结果看到,第一个示例raise Exception引发了一个没有相关错误信息的普通异常,第二个示例输出了一些错误提示。
#如果只想知道是否抛出了异常,并不想处理,使用一个简单的raise语句就可以再次把异常抛出,例如:
1 #!/usr/bin/python3
2 #-*-coding:UTF-8-*-
3 #异常
4 
5 try:
6     raise NameError('This is NameError')
7 except NameError:
8     print('An exception happend!') #后面不加raise
#程序执行结果如下:
1 D:\Pythonworkspace>python 异常.py
2 An exception happend!
#再例如:
1 #!/usr/bin/python3
2 #-*-coding:UTF-8-*-
3 #异常
4 
5 try:
6     raise NameError('This is NameError')
7 except NameError:
8     print('An exception happend!')
9     raise #最好加一个raise
#执行结果如下:
1 D:\Pythonworkspace>python 异常.py
2 An exception happend!
3 Traceback (most recent call last):
4   File "异常.py", line 6, in <module>
5     raise NameError('This is NameError')
6 NameError: This is NameError
#由操作结果看到,使用raise可以输出更深层次的异常。在使用过程中,可以借助该方法得到更详细的异常信息
#前面碰到的NameError、SyntaxError、TypeError、ValueError等异常类称为内建异常类。在Python中,内建的异常类有很多,可以使用dir函数列出异常类的内容,并用在raise语句中,用法如raise NameError这般。
#这表为一些重要的内建异常类