我想知道是否有办法在调用的方法中捕获异常。
例子:
def foo(value):
print value
foo(x)
这会抛出一个 NameError 异常,因为 x 没有声明。 我想在 foo 方法中捕获这个 NameError 异常。 有办法吗?
请您参考如下方法:
NameError 发生在 x 被尝试求值时。 foo 从未被输入,因此您无法在 foo 中捕获 NameError。
我认为你的想法是,当你执行foo(x)时,输入了foo,然后是x 被查找。你想说,“我不知道 x 是什么”,而不是让 NameError 被引发。
不幸的是(对于您想做的事情),Python 与几乎所有其他编程语言一样,在将参数传递给函数之前对其求值。无法阻止从 内部 foo 传递到 foo 的值的 NameError。
