20

ハンドラーで例外が発生したときに、Django シグナルハンドラーがサイレントに失敗しないようにするにはどうすればよいですか?

開発サーバーの使用中にこれらすべてのエラーが記録される場所はありますか?

とにかくdjangoシグナルハンドラが黙って失敗するのはなぜですか? Zen of Pythonの行の 1 つに反していませんか?

Zen of Python は明確に述べています...

エラーは黙って通過するべきではありません。

デバッグするのは悪夢です。あなたが見ることができるのは、信号が発射されていないことだけです...

私はこの質問を見つけましたが、質問に非常に固有であるため、答えは役に立ちません(答えはpyflakesの使用を示唆しています。満足のいく静的分析を行うpydevを既に使用しています)

4

2 に答える 2

5

使用するmanage.py shellと、例から手動で FollowTable を作成すると、キャッチされない例外が発生します。ただし、リクエスト中にキャッチされなかった例外は、ターミナルには表示されず (500 が返されたことを示す以外)、代わりにブラウザーに表示されます。JavaScript を使用してリクエストを作成している場合は、firebug/chrome 開発者ツールを調べて、トレースバックが返されているかどうかを確認してください。

他の誰かがトレースバックをコンソールに表示する方法に答えたようです: https://stackoverflow.com/a/5886462/725359

私のために働くように見えました。私は次のことをしました:

  1. ExceptionLoggingMiddlewareにクラスを追加しましたmy_app/__init__.py
  2. に追加'my_app.ExceptionLoggingMiddleware'_MIDDLEWARE_CLASSESsettings.py
  3. 開発サーバーを再起動しました
于 2013-01-23T14:55:39.477 に答える