Python异常处理:检查函数的返回值
在使用函数返回值之前,我想检查该值是否可用。因此,我大致有以下几点:Python异常处理:检查函数的返回值,python,exception-handling,Python,Exception Handling,在使用函数返回值之前,我想检查该值是否可用。因此,我大致有以下几点: def get_module(): import foo return foo def do_something(): try: module = get_module() except: print "error" module.bar() 不幸的是,在我看来,这从未引发例外。特别是,我想检查(a)模块是否正确传输,以及(b)模块是否为三种可能的模块之一 我知道我可以检查if语句,但
def get_module():
import foo
return foo
def do_something():
try:
module = get_module()
except:
print "error"
module.bar()
不幸的是,在我看来,这从未引发例外。特别是,我想检查(a)模块是否正确传输,以及(b)模块是否为三种可能的模块之一
我知道我可以检查if语句,但我觉得异常处理应该是正确的方法 如果无法导入
foo
,以下代码将产生异常:
def get_module():
import foo
return foo
def do_something():
try:
module = get_module()
except ImportError:
print "Import Error!"
raise
module.bar()
do_something()
产生:
Import Error!
Traceback (most recent call last):
...
import foo
ImportError: No module named foo
请注意,您应该通过except
块中的raise
重新引发异常,或者进行返回
,这样就不会因为未定义的module
变量而在module.bar()
行上出现错误
希望这会有所帮助。它不会引发异常。。。如果
foo
不存在。否则,get_模块
将引发importorror
(您应该显式捕获它,而不是除了)之外的裸)啊,是的。我想我开始了解Python的异常处理。非常感谢。