2012-04-10 9 views
8

最近、コントローラの例外を扱う際に一貫性がないasp.net mvcプロジェクトに参加しました。一部の開発者はクライアントにデータを返してユーザーに何が間違っているのかを知らせ、他のデベロッパーはプロセスとログを記録するサーバーレベルのハンドラにユーザーを知らせることなく戻します。例外をスローしてユーザーに通知する

どちらのアプローチもそれぞれが間違っていて、お互いを補完する必要があることは明らかです。私が立ち往生していることは、そのやり方です。私は最終的な例外ハンドラ/ロガーは、特に厄介な何かをキャッチすると、エラーのWebページにユーザーをリダイレクトできると仮定しますが、それは厳しいものにメカニズムを制限します。

私は例外をキャッチするときに "スロー"と "リターン"の両方を行う方法を探しているので、それをソートしてサーバー側に記録し、データクライアント側に取得します私は、ユーザーにそれが面倒であったことを伝えることができます。

asp.netの私の専門知識は非常に限られていますが、私はmvcが問題ではないと十分に理解していると信じていますが、これは「ベストプラクティスは何ですか?ベストプラクティスをあまり気にかけない人と仕事をしている人からの質問。

+0

あなたがこれだけを心配しているという事実は、あなたをチームに良いものにします。しかし、あなたのチームメートにもこれの重要性を見せてもらうようにしてください。そうでなければ、あなただけのものをより良くしようとする唯一の人になり、他の人は再びそれを壊すことになります。 – MarioDS

+0

私はMarioに同意します。あなたのチームとの懸念に対処することが重要です。例外を処理するための優れた方法論があると感じたら、長期的には製品の方が良いので、チームと共有してください。彼らとのカジュアルな議論をすることで、彼らの思考プロセスやあなたが見落としているかもしれないことが明らかになるかもしれません。 – Tung

答えて

2

ASP.NETアプリケーションでエラーと例外を記録するのに、Elmahという優れたプロジェクトがあります。あなたはhere

ELMAH(エラーログモジュールとハンドラ)それを見つけることができ、完全にプラグイン可能で、アプリケーション全体の エラーロギング機能です。実行中のASP.NET Webアプリケーションに を動的に追加したり、 を再コンパイルまたは再展開する必要なく、すべて ASP.NET Webアプリケーションをマシン上に追加することもできます。

ELMAHは、実行中のWebアプリケーションと、適切に構成 内に落下した後、あなたは があなたの一行のコードを変更せずに、次の施設を取得:ほぼすべての未処理の例外の

  • ログを。
  • 遠隔からのWebページ recoded exceptionsのログ全体を表示します。
  • カラースタック トレースを含む、ログに記録された例外の詳細をリモートで表示するWebページ 。
  • 多くの場合、 customErrorsモードがオフになっていても、特定の例外に対してASP.NETが生成した 死の元の黄色の画面を確認できます。
  • 各エラーのメール通知は に発生します。
  • ログから最後の15個のエラーのRSSフィード。私が働いている
0

MVCアプリケーションは、アプリケーションからスローされた例外を処理するGlobal.asaxApplication_Errorを実装して、標準エラーページにユーザーをリダイレクトします。エラーページのコントローラーはロギングを処理するだけでなく、サポート担当者がシステムでセッションを見つけて問題を解決できるように、エラーに関する情報を表示します。

関連する問題