C#,Catch异常

Exp*_* be 5 c# exception

我使用了一个Exception类型

catch(Exception e){
  log.Error(e.GetType()); // it write 'System.Data.EntityException'
}
Run Code Online (Sandbox Code Playgroud)

所以我改变我的代码以捕获该异常,

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

并且代码只写"否".

如何在达到Exception之前捕获EntityException?

谢谢

Ree*_*sey 4

如果在该文件或命名空间的当前 using 语句集中没有定义其他类型,则您拥有的代码应该可以正常工作。EntityException

尝试完全限定类型,如下所示:

try{
...
}catch(System.Data.EntityException a){
  // need to do something
  log.Error("I got it!");
}catch(Exception e){
  log.Error("No");
}
Run Code Online (Sandbox Code Playgroud)