2017-06-21 90 views
0

什么将是抛出一个异常,让用户知道它是从my_module提出适当的方式,即使它是一个共同的Python异常,像一个ValueError:Python的 - 提高自定义异常

#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:对不起,我should've解释的更好: 甚至尽管我不知道知道什么样的例外上面的代码可能会抛出,我倒是喜欢的用户的,它是从my_module源于一个错误。 这是最佳做法吗? 我应该如何处理自定义模块中的意外异常?

+0

看到https://docs.python.org/3/tutorial/errors.html#user-defined-exceptions – depperm

+1

这已经被追溯,实现这显示原始异常(及其模块)。 –

回答

0

你可以做到以下几点:

#... 

raise ValueError('This exception was raised from myModule') 

#....