1

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

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

我想知道:

  1. 在导入时检查这些条件是否是最佳实践,或者最好稍后(何时)进行
  2. 我应该提出什么类型的异常?它应该是我自己的class MyModuleImportError(Exception)还是一些内置的异常更合适和常用?一个候选者是ImportError,但它似乎是为python “找不到模块定义”的情况而保留的
4

1 回答 1

2

这是你想要的?

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

  1. 是的,您应该在代码开始时检查这些内容。否则它没有理由继续运行。
  2. 一个OSError(如上)
于 2013-05-28T08:03:08.377 回答