他のエンティティ(クライアントなど)によって生成されたデータを処理する、分離されたPythonコードがあるとします。
私が受け取るデータは間違った形式である可能性があります(たとえば、クライアントのだらしなさ、データの破損、名前を付けるなど)。そのため、Pythonコードでの処理が何らかの理由で失敗し、例外が発生します。ダウンストリームのコードが、処理が正しくて間違っているかどうかを知ることに関心があり、なぜそれが間違っているのかではないと仮定しましょう。
私の懸念は次のとおりです。複雑な不正な入力に対してそのような例外を発生させるためのベストプラクティスは何ですか?この場合の例外を整理するにはどうすればよいですか?
特にデータの正しいフォーマットが複雑な場合、データは多くの点で不正確であることが判明する可能性があります。自分でエラーを簡単にキャッチできる場合もありますが(たとえば、間違ったマジック値を見つけた場合は、を上げることFancyCustomizedException
ができます)、他の場合には、いくつかの一般的な例外も発生する可能性があります(たとえば、いくつかValueException
)。
例外が発生した場合に処理が間違っていたと言っても大丈夫ですか(この場合、ダウンストリームのコードは非常に一般的な(そして醜い)ものを使用しますtry: ... except: ...
)?
すべての一般的な例外をキャッチして、それらを私の内部に隠す方が良いですかFancyCustomizedException
(この場合、ダウンストリームのコードは非常に一般的ではないものを使用しますが、コードをtry: ... except FancyCustomizedException, e: ...
散らかします)?try: ... except: ...