【发布时间】:2022-01-04 21:59:04
【问题描述】:
我有一个看起来像这样的代码块:
try:
if x == 1:
a()
if x == 2:
b()
if x == 3:
c()
except Exception:
raise Exception("Problem in function")
每个函数a()、b()和c()都可以有异常。无论如何我可以通过一条消息引发异常,告诉哪个函数导致了异常。
我想知道它是否可以在这里不单独在每个函数中使用try、catch 语句。
【问题讨论】:
-
你为什么要捕获原始异常?
-
用x的值找出来?让原始错误消失而不是抓住它并抛出一个新错误? 从旧错误引发新错误?
-
(即使捕获原始异常是正确的,也有办法做到这一点 - 事实上,Python 应该已经为你做到了,尽管手动有更好的方法- 但很可能您根本不应该捕获原始异常。)