#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这般。
#这表为一些重要的内建异常类