Pythonで複数のデータ検証エラーを一度に捕捉、記録、報告するために人々は何を持っていましたか?Pythonで複数の例外を収集し報告するための慣習的な方法
私は最初に入力データを検証し、それを処理するアプリケーションをPython 3で構築しています。最初のステップでエラーを報告することは、プログラムの意図された機能の一部であるため、バリデーターが最初の例外をあきらめてしまわないようにします。特に、データは表形式であるため、検証しない表の各行に対して例外を発生させるのではなく返すことができます。
forum discussion from a couple of years agoは、私にはきれいなようで、以下を含む複数のソリューションを、企図:MultipleValidationErrors
クラスはその中のすべてのValidationErrors
に関する有用な情報を表示するための適切な__str__
メソッドを持っているでしょう
errors = []
for item in data:
try:
process(item)
except ValidationError as e:
errors.append(e)
if errors:
raise MultipleValidationErrors(errors)
。
他の人はtraceback
モジュールを使用することをおすすめしますが、例外として、プログラムエラーではなくデータ検証エラーが発生することがあります。しかし、logging
モジュールを入手することは適切かもしれません。
多分[この質問](http://stackoverflow.com/questions/6470428/catch-multiple-exceptions-in-one-line-except-block)助けてくれるでしょう – inspectorG4dget
@ inspectorG4dget:その質問は複数のタイプをキャッチすることです例外のこれは、同じ例外タイプの複数のインスタンスをキャッチすることです。 –
あなたが望むコードがあれば、あなたが記述したコードが動作します。また、トレースバックモジュールを使ってより多くの情報を提供することもできます。あるいは、後で使用するために例外オブジェクトをデータ構造に保存するか、他の多くのことを行うことができます。それはあなたの質問から明らかではない、例外に対するあなたの要求が何であるかによって異なります。 –