2012-06-06 25 views
0

我開始使用實體框架4.3.1與代碼優先的方法。如何從System.Data命名空間捕獲異常?

我想避免應用程序崩潰時數據庫服務器關閉或不可用捕捉特定的異常。 想象一下這個代碼的短樣件:

using (var db = new MyContext()) 
{ 
    var people = new People(); 
    db.People.AddObject(people); 
    db.SaveChanges(); 
} 

當服務器關閉時,我收到ProviderIncompatibleException。 如果我試圖修改代碼捕獲ProviderIncompatibleException這樣

using (var db = new MyContext()) 
{ 
    try 
    { 
     var people = new People(); 
     db.People.AddObject(people); 
     db.SaveChanges(); 
    } 
    catch(ProviderIncopatibleException) 
    { 
    } 
}  

我收到編譯器錯誤「捕獲或拋出的類型必須從System.Exception派生」。 如何使用實體框架捕獲大多數特定的異常? 謝謝你的幫助。

+1

再試據http://msdn.microsoft.com/en-us/library/system.data.providerincompatibleexception.aspx從System.Exception派生。你有沒有嘗試過使用整個類路徑:'System.Data.ProviderIncompatibleException'? – MarcinJuraszek

+0

名稱中有一個錯字:ProviderInco-patibleException' – Polynomial

+0

@MarcinJuraszek你是對的。我沒有引用System.Data彙編 –

回答

1

在班級名稱中存在拼寫錯誤 - 您錯過了Incompatible中的'm'。

ProviderIncompatibleException

+0

感謝您的信息。我有固定的例外名稱。 –