【发布时间】:2017-06-21 14:35:28
【问题描述】:
引发异常并让用户知道它是从 my_module 引发的正确方法是什么,即使它是一个常见的 Python 异常,例如 ValueError:
#my_module.exceptions.py
class MyModuleError(Exception):
pass
#my_module.do_something.py
def do_something(*args):
try:
some logic here
except Exception as e:
# i dont know in advance what kinds of exceptions
# this code might throw
raise MyModuleError('An error ocurred %s' % (repr(e))
我希望用户知道该异常是在我的模块内部发生的,即使它是一般的 python 异常。
Edit1:抱歉,我应该解释得更好: 即使我不知道上面的代码可能会抛出什么样的异常,我希望用户知道这是源自 my_module 的错误。 这甚至是最佳实践吗? 我应该如何处理自定义模块中的意外异常?
【问题讨论】:
-
这已经由回溯完成,它显示了原始异常(及其模块)。