0

django では、エラーが発生するたびに、try ブロックを保持しないとエラーが発生します。その時点(エラー中)で、エラーページの代わりに try ブロックにない場合は、 msg を表示できます。

私が実際に言っているのは、エラー中にアクティブになり、その msg を出力するもの (信号など) が django にあるということです。私の場合、それは ajax リクエストなので、何かが try ブロック内になく、それでもエラーが発生した場合は、少なくともエラー メッセージを送り返す必要があります (私たちに ajax 呼び出しを行った別のサーバーに)サーバー)「エラーが発生しました」と言っています。

4

2 に答える 2

0

私の知る限り、Python でデフォルトの例外処理をグローバルにオーバーライドする方法はありません。try/ブロックを使用exceptしてエラーをキャッチし、コードを実行してから、例外を再発生させることができます。

コードをtryブロックに入れ、ブロックにメッセージを出力してから、キャッチされた例外を再発生させるためにexcept呼び出します。raise

元:

try:
    raise Exception("This is an exception")
except Exception:
    print ("Exception raised, notify server")
    #re-raise exception
    raise

これにより、次のように出力されます。

Exception raised, notify server
Traceback (most recent call last):
  File "[file]", line [line], in [module]
Exception: This is an exception
于 2012-08-03T13:23:30.670 に答える
0

Django では、エラーが発生した場合、実際にはユーザーに自動的に伝播されません。むしろ、エラーが発生した場合は、500 エラー ページが返されます。Django がデバッグ モードの場合、トレースバックが表示されます。他のサーバーがインテリジェントな場合、200 メッセージの代わりに 500 エラー メッセージがあることがわかります。Django では、ルート ディレクトリに "500.html" を定義してエラーを処理できます (または、デフォルトの Django テンプレートを使用します)。GL HF

于 2012-08-03T16:32:22.027 に答える