5

を使用して例外タイプを取得します

catch(Exception e){
  log.Error(e.GetType()); // it write 'System.Data.EntityException'
}

その例外をキャッチするようにコードを変更し、

try{
...
}catch(EntityException a){
  // need to do something
  log.Error("I got it!");
}catch(Exception e){
  log.Error("No");
}

そしてコードは「いいえ」だけを書きます。

Exception に到達する前に EntityException をキャッチするにはどうすればよいですか?

ありがとう

4

3 に答える 3

4

そのファイルまたは名前空間の現在の一連の using ステートメント内で別の型が定義されていなければ、コードは正しく機能するはずです。EntityException

次のように、型を完全に修飾してみてください。

try{
...
}catch(System.Data.EntityException a){
  // need to do something
  log.Error("I got it!");
}catch(Exception e){
  log.Error("No");
}
于 2012-09-19T16:39:36.040 に答える
1

私は同じ問題を抱えていましたが、ここで受け入れられた答えはうまくいきませんでした。EntityException は System.Data.EntityException として完全に修飾されていますが、実際には System.Data.Entity アセンブリにあります ( http://msdn.microsoft.com/en-us/library/system.data.entityexception(v=vs. 110).aspx ) であるため、Intellisense がコード内の System.Data.EntityException を認識する前に、プロジェクトは System.Data.Entity への参照を必要とします。

于 2014-03-18T14:00:02.697 に答える
-1

例外に一致する最初の「キャッチ」がアクティブ化されます。

于 2012-09-19T16:38:23.347 に答える