Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python异常处理:检查函数的返回值_Python_Exception Handling - Fatal编程技术网

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的异常处理。非常感谢。