2017-06-21 16 views
0

を上げると何、例外を発生し、ユーザーはそれがmy_moduleから提起されたことを知らせるための適切な方法になりますでも、そのと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)) 

Iユーザーには例外が私のモジュールの内部に投げ込まれていることを知ってほしいと思っています。それは一般的なPython Exceptionでした。

EDIT1:申し訳ありませんが、私はより良い説明should've: 私は、それはエラーがmy_moduleから発信されたことを知ることが、ユーザーのようにi'd、上記のコードは投げるかもしれない例外の種類を知らないとしてもカントー。 これはベストプラクティスですか? カスタムモジュール内で予期しない例外をどのように処理する必要がありますか?あなたは、次の操作を行うことができ

+0

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

+1

これは、すでにトレースバックすることによって達成される、その元の例外(およびそのモジュール)を示します。 –

答えて

0

#... 

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

#....