Skip to main content
 首页 » 编程设计

Python之如何在方法内部捕获外部异常

2025年05月04日12luoye11

我想知道是否有办法在调用的方法中捕获异常。

例子:

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。