在Python中,except:和Exception as e:之间的区别

本文对比了Python中except:与exceptExceptionase的使用差异,指出前者适用于自定义错误处理,后者在处理第三方库异常时会抛出。通过实例演示了如何在用户代码和模块导入时应用这两种处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在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.


# 不会打印  "你这瓜多少钱一斤?"了,因为程序已经终止了

总结:

处理自己代码的异常用exceptexcept Exception as e好像没有太大的区别

如果涉及第三方模块的话,except不报错,except Exception as e会报错

大家根据自己的业务场景使用吧

最后:

仅供参考,可能写的不对,欢迎留言指出问题

参考文章:
在Python中,except:和Exception as e:之间的区别
Python函数超时跳过往下执行,用装饰器解决 func_timeout

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值