c#異常與sql server錯誤

在 SQL Server 的存儲過程中根據業務邏輯的要求,有時需要拋出自定義異常,由C#程序俘獲之並進行相應的處理。SQL Server 拋出自定義異常和簡單,像這樣就可以了:RAISERROR('Rais Error1', 16, 1) WITH NOWAIT但定用什麼樣的錯誤級別卻很講究,否則 C# 中的 catch 塊可能俘獲不到的。SQL Servr 拋出自定義異常的方法一般這麼寫就可以:RAISERROR('Rais Error1', 16, 1) WITH NOWAIT 其中數字 16 代表錯誤級別:錯誤級別從 0 到 25, 其中 19 到 25 是重大錯誤級別。注:小於 0 的級別被解釋爲 0,大於 25 的級別被解釋爲 25。 任何用戶都可以指定 0 到 18 之間的錯誤級別。19 到 25 級別的錯誤,只能由 sysadmin 角色的成員用 WITH LOG 選項指定。19 到 25 級別的錯誤,將記錄到錯誤日誌和應用程序日誌。20 到 25 級別的錯誤,被認爲是致命的;遇到致命的級別錯誤,客戶端的連接將在收到消息後終止。C# 中的 catch 塊中可以俘獲 錯誤級別 11 到 19 級別的異常。0 到 10 級別的錯誤根本不進catch 塊;而 20 到 25 級別的異常,被認爲是致命的,會被斷開數據庫連接。所以 C# cath 塊可以接受到這種異常,但異常的內容不是真正的異常內容,可能是類似這樣的內容:“在從服務器接收結果時發生傳輸級錯誤”。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章