2011-12-29 9 views
0

私はMVC3 Dot NetプロジェクトでEFを使用しています。Exceptionを処理し、C#を使用して適切なメッセージを表示する方法は?

Exception(すなわちex)のオブジェクト内のすべての例外を捕捉しています これでどのようにSQlExceptionsを取得(またはフィルタリング)できますか、意味のあるメッセージを表示することができます。 私は例外/インナーexcetionを通じてSystem.Data.UpdateExceptionクラスに

答えて

1

ループを取得し、(exはのSQLExceptionである){} たぶん、あなたはSystem.Data.Entityへの参照を追加する逃したかどうかを確認しておりません。問題に直面して

あなただけUpdateExceptionsをしたい場合ので、あなたは

(あなたは、具体的ですべての例外を何かをやっている場合を除き、またはまったく)あなたが最初の例外をキャッチすべきではないSystem.Data.UpdateExceptionクラス

+0

は友人答えた場合、私はSystem.Data.UpdateException – Ranjit

+1

のためのソリューションを持ってありがとう。また、一般的なログELMAHのために考えます解決策でした: – ivowiblo

1

を参照してくださいいけませんその例外を捕捉するだけです。 このキャッチは、例えば、より一般的なもので、他の取り扱いを超えるべきである

 
try 
{ 
} 
catch(System.Data.UpdateException ex) 
{ 

} 
catch(Exception ex) //optionally 
{ 
///less generic handling 
} 

http://code.google.com/p/elmah/

+0

あなたはappose非常にいいですが好きですが必要な場合(e.Exception!= null){ \t if(e.ExceptionがSqlException){ \t \t SqlException sqlExcep =(SqlException) e.Exception; \t \tスイッチ(sqlExcep.Number){ \t \t \t場合SqlExceptionNumber.ForeignKeyConstraint: \t \t \t \t this.ExceptionDetails.Text + = "エラー:外部キーViolation.The契約を挿入することはできません。"; \t \t \t \t break; \t \t \tケースSqlExceptionNumber.UniqueKeyConstraint: – Ranjit

+0

上記のコードをいくつか投稿してください。完全に理解していません。 e.Exceptionがスローされた例外ではなくその型であるかどうかをチェックしますか? –

関連する問題