0

您好我正在實施我的WP7應用程序內的本地數據庫,並想知道如何處理在數據庫上運行操作時可能出現的不同類型的SqlCeExceptions。例如,如果嘗試刪除由外鍵約束的項目並執行另一個錯誤讓我們說一個隨機未處理的異常,我想要顯示某個錯誤消息。如何處理LINQ to SQL異常?

對我來說,這似乎是可能的異常可以在switch敘述可以通過catch塊中,像這樣:

switch(myException) 
{ 
    case ForeignKeyException: 
     //Handle it this way... 
     break; 
    case UnhandledException: 
     //Handle it another way... 
     break; 
} 

有誰知道如何實現這也許指向我的地方,在那裏我可以學到如何單獨處理這些異常?

回答

2

雖然我沒有答案,但我總是通過從不讓例外發生來解決這個問題。我總是在之前檢查插入數據是否有效。我確保所有的唯一索引都受到尊重(用戶名,...),並且所有外鍵問題都已得到處理。這是,恕我直言,唯一的理智的方式來做到這一點。我不希望產生異常並處理它們,因爲我永遠不能確定我不會捕捉太多的異常,從而隱藏真正的錯誤。

+1

+1我想你做一個很好的點。現在我回去了,實施一種形式的檢查而不是依靠例外情況會更好。我繼續實施你所說的並且很好地工作。 – loyalpenguin 2012-01-27 22:46:32

2
try 
{ 
    // something 
} 
catch(ForeignKeyException ex) 
{ 
    // handle foreignkeyexception 
} 
catch(UnhandledException ex) 
{ 
    // handle unhandledexception 
} 
+0

任何想法如何區分不同的錯誤?我查了一下SqlCeException,但找不到可以檢查的異常列表。 ForeignKeyException是我寫的解釋我的問題的peusdo代碼。 – loyalpenguin 2012-01-27 22:30:22

1

爲什麼不爲每個您關心的異常類型設置不同的catch塊?

try 
{ 
    ... 
} 
catch(a ae) 
{ 
    ... 
} 
catch(b ab) ......