我做了一個捕獲,如果拋出特定的sql服務器錯誤,代碼可能會忽視並繼續執行。一位同事表示,我正在捕獲的錯誤消息是從SQL引發的,當我們升級到2008年時它可能會發生變化。他說我的解決方案今天可以使用,但這是一個弱項解決方案。所以,我的問題是...如何捕獲和處理從SQL服務器拋出的錯誤,如果它可能依賴於sql服務器版本。即(2005年,2008年或更新)?關於如何使捕魚更好的任何想法?如何捕獲可能隨SQL Server升級而更改的SQL錯誤
我的代碼
string sqlError = "The INSERT statement conflicted with the FOREIGN KEY constraint Table1. The conflict occurred in database Work1, table Table2.";
catch (Exception oExp)
{
//This check will allow the specific error to continue without getting caught.
if (oExp.Message.Contains(Constants.sqlError) == false)
{
throw oExp;
}
}
爲什麼錯誤首先被拋出。我會盡力解決這個問題。 –
同意 - 這是一個可避免的錯誤 - 所以採取措施避免它發生的可能性。 –
,不要'拋出oExp;'拋開';否則你會失去我認爲的堆棧跟蹤。 –