Python异常处理:检查函数的返回值

时间:2014-03-17 17:43:48

标签: 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语句,但我觉得异常处理应该是正确的方法。

1 个答案:

答案 0 :(得分:1)

如果无法导入foo,则以下代码会产生ImportError例外:

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

请注意,您应该通过raise块中的except重新加注例外,或者制作一个return,这样就不会在{{1}上收到错误}因为未定义的module.bar()变量而行。

希望有所帮助。