在Python中,except:和Exception as e:之间的区别
注意:是except与Exception as e的区别
用户制造的异常:
except
def allen():
if 1==2:
allen_dic = {} #为下面allen_dic添加值制造异常
allen_dic['allen'] = 'handsome'
try:
allen()
except:
pass
print('你这瓜多少钱一斤?')
# 执行结果会打印 "你这瓜多少钱一斤?" 没有问题,往下看
except Exception as e
def allen():
if 1==2:
allen_dic = {} #为下面allen_dic添加值制造异常
allen_dic['allen'] = 'handsome'
try:
allen()
except Exception as e:
pass
print('你这瓜多少钱一斤?')
# 执行结果会打印 "你这瓜多少钱一斤?" 依然没有问题,往下看
内置模块或第三方包抛出异常:
except
from func_timeout import func_set_timeout
# pip install func_timeout 没有的话复制一下就好了
@func_set_timeout(2) #使用程序超时处理装饰器,执行时间超过2秒抛异常
def allen():
while True: #制造一个死循环
pass
try:
allen()
except:
pass
print('你这瓜多少钱一斤?')
# 执行结果会打印 "你这瓜多少钱一斤?" 没有问题,往下看
except Exception as e
from func_timeout import func_set_timeout
# pip install func_timeout 没有的话复制一下就好了
@func_set_timeout(2) #使用程序超时处理装饰器,执行时间超过2秒抛异常
def allen():
while True: #制造一个死循环
pass
try:
allen()
except Exception as e:
pass
print('你这瓜多少钱一斤?')
#报错:
# raise FunctionTimedOut('', timeout, func, args, kwargs)
# func_timeout.exceptions.FunctionTimedOut: Function allen (args=()) (kwargs={}) timed out after 2.000000 seconds.
# 不会打印 "你这瓜多少钱一斤?"了,因为程序已经终止了
总结:
处理自己代码的异常用except
与except Exception as e
好像没有太大的区别
如果涉及第三方模块的话,except
不报错,except Exception as e
会报错
大家根据自己的业务场景
使用吧
最后:
仅供参考
,可能写的不对,欢迎留言指出问题
参考文章:
在Python中,except:和Exception as e:之间的区别
Python函数超时跳过往下执行,用装饰器解决 func_timeout