簡體   English   中英

C#,Catch異常

[英]C#, Catch Exception

我使用了一個Exception類型

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?

謝謝

如果在該文件或命名空間的當前使用語句集中沒有定義另一個EntityException類型,那么您所擁有的代碼應該可以正常工作。

嘗試完全限定類型,如下所示:

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

我遇到了同樣的問題,這里接受的答案對我不起作用。 雖然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。

匹配異常的第一個“catch”是激活的那個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM