如果不满足条件,则在导入时引发异常

时间:2013-05-28 07:56:07

标签: python

我有一个依赖于某些系统设置的模块。例如,要正常工作,需要设置环境变量FOO。如果在导入时不满足此条件,我希望模块引发异常。

# mymodule.py
if 'FOO' not in sys.environ:
    raise SomeException('ensure that FOO is provided')

我想知道:

  1. 在导入时检查这些条件是否是最佳做法,或者稍后(何时)进行检查可能会更好
  2. 我应该提出什么类型的例外?它应该是我自己的class MyModuleImportError(Exception)还是一些内置的例外更合适和常用?一个候选者将是ImportError,但是当python “无法找到模块定义”
  3. 时,似乎会保留这种情况。

1 个答案:

答案 0 :(得分:2)

这是你在找什么?

>>> import os
>>> if not os.getenv('FOO', False):
    raise OSError('FOO not in envs')

  1. 是的,你应该在代码开头检查这些事情。否则,它没有理由继续运行。
  2. OSError(如上所述)