1.python标准异常总结
2.try
·如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。
·如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印默认的出错信息)。
·如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。
try:
<语句> #运行别的代码
except <名字>:
<语句> #如果在try部份引发了'name'异常
except <名字>,<数据>:
<语句> #如果引发了'name'异常,获得附加的数据
else:
<语句> #如果没有异常发生
使用except而不带任何异常类型
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
以上方式try-except语句捕获所有发生的异常。
try-finally 语句
try:
<语句>
finally:
<语句> #退出try时总会执行
raise语句
我们可以使用raise语句自己触发异常
raise [Exception [, args [, traceback]]]
语句中 Exception 是异常的类型(例如,NameError)参数标准异常中任一种,args 是自已提供的异常参数。最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。
try:
print('异常之前')
raise NameError('hanhuijin1')
print('异常之后的语句')
except NameError as a:
print('出现异常',str(a))
#
异常之前
出现异常 hanhuijin1
def functionName( level ):
if level < 1:
raise Exception("Invalid level!", level)
try:
functionName(0)
except Exception as a:
print(1,a)
#
1 ('Invalid level!', 0)