淺析ASP.Net之C#中的異常處理_.Net教程
推薦:ASP.Net網絡數據庫:連接到數據庫1.使用數據庫MyFirstAccessDB 本實例使用的數據庫名稱為MyFirstAccessDB,版本為Microsoft Access 2003中文版。該數據庫已經在1.4.2節中創建。 2.創建新ASP.NET應用程序 在Visual Studio .NET 2003集成開發環境中創建新的ASP.NET Web應用程序,命名為Examp
基礎知識
程序開發中,數據流按照一定的規律進行傳輸,如果用戶和程序之間的交互完全按照預定的效果運行,程序不會出現問題。可以假設所處理的數據都符合要求,通過界面作格式判定,所有資源都正確,但是為了系統的安全,需要處理存在的隱患,不能對數據安全抱有理想化的想法。
在ASP.NET中,錯誤處理分為兩個層面:頁面輸入信息驗證、CLR提供的結構化錯誤處理機制。
在頁面輸入信息判斷中,可以采用JavaScript、VBScript等腳本進行判斷,也可以使用.NET 環境下帶有的Validation和正則表達式的方式將信息在提交執行處理前,進行格式判斷。格式判斷包括:網絡地址、電子信箱、輸入字符串長短和輸入信息的數據類型的判斷等。
結構化異常處理是CLR的基礎部分,具有以下特點:可以跨語言,異常可以在一種語言中引發,在另外一種語言中捕捉處理;分層處理,一個異常可以包括另外一個異常,這意味著系統可以捕獲底層對象(如數據層和業務層)的異常,引發自己的異常,包含有底層對象的異常。這樣可以將異常進行細致分類,使得異常更容易處理。
結構化異常處理,一般要使用3部分代碼。
(1)Try:是程序中可能出現錯誤的操作部分。
(2)Catch:是用來處理各種錯誤的部分(可以有多個)。必須正確排列捕獲異常的Catch子句,范圍小的Exception放在前面的Catch。即如果Exception之間存在繼承關系,就應把子類的Exception放在前面的Catch子句中。
(3)Finally 塊的代碼用來清理資源或執行要在Try塊末尾執行的其他操作(可以省略)。無論是否產生異常,Finally塊都會執行。
結構化異常處理
異常是在程序設計中無法避免的錯誤,設計的程序必須能夠處理所有可能出現的錯誤。所以要全面考慮異常處理,將一切可能出現異常的代碼都進行try的捕捉,然后建立自己的異常處理機制,按照不同的異常情況進行分類處理。
異常產生的時候,需要知道是什么原因造成的錯誤以及錯誤的相關信息。根據實際情況拋出具體類型的異常,然后建立捕捉機制,捕捉到異常時做出具體的處理。在編寫代碼過程中,可以使用系統已定義的相關異常類以及自定義的異常類來實例化并拋出需要的異常。如一個不可能實現的接口,可以拋出System.NotSupportedExceptiion的異常來告訴接口的調用者。
在處理異常的時候,應該將可處理的具體異常分別在catch 塊中作出相應處理,否則程序將終止運行。針對每一種異常,以不同方式處理,避免對所有異常做出一樣的處理。并且在異常產生時,給用戶一個友好的提示(最終用戶對系統異常的具體內容是不明白的,這就需要給出相關的信息提示和解決方案,或告訴聯系管理員等),并在可能的情況下給用戶提供選擇(確定和取消),讓用戶來決定系統的運行方向。同時,程序中要將異常做日志記錄。不是所有異常都是必須記錄的,例如一些可捕捉并且已經安排程序進行處理的異常就不需要記錄它。
分享:JSP和ASP.NET存儲過程的對比這篇文章主要介紹了Oracle數據庫到SQL Server數據庫主鍵的遷移過程,具體內容請參考下文。 由于項目需要要將以前Oracle的數據庫轉化為SQL Server,今天利用SQL Server的DTD進行數據庫的遷移,但導入以后發現只導入了表結構和數據,而表的一些主鍵約束都沒導過
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-淺析ASP.Net之C#中的異常處理
。