熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.Net之C#中的異常處理[1]

2013-11-13 12:12:03  來源: .NET編程 
    ——此文章摘自《ASPNET +SQL Server網絡應用系統開發案例精解》定價 特價 詳細>>

    基礎知識

    程序開發中數據流按照一定的規律進行傳輸如果用戶和程序之間的交互完全按照預定的效果運行程序不會出現問題可以假設所處理的數據都符合要求通過界面作格式判定所有資源都正確但是為了系統的安全需要處理存在的隱患不能對數據安全抱有理想化的想法

    在ASPNET中錯誤處理分為兩個層面頁面輸入信息驗證CLR提供的結構化錯誤處理機制

    在頁面輸入信息判斷中可以采用JavaScriptVBScript等腳本進行判斷也可以使用NET 環境下帶有的Validation和正則表達式的方式將信息在提交執行處理前進行格式判斷格式判斷包括網絡地址電子信箱輸入字符串長短和輸入信息的數據類型的判斷等

    結構化異常處理是CLR的基礎部分具有以下特點可以跨語言異常可以在一種語言中引發在另外一種語言中捕捉處理分層處理一個異常可以包括另外一個異常這意味著系統可以捕獲底層對象(如數據層和業務層)的異常引發自己的異常包含有底層對象的異常這樣可以將異常進行細致分類使得異常更容易處理

    結構化異常處理一般要使用部分代碼
    ()Try是程序中可能出現錯誤的操作部分
    ()Catch是用來處理各種錯誤的部分(可以有多個)必須正確排列捕獲異常的Catch子句范圍小的Exception放在前面的Catch即如果Exception之間存在繼承關系就應把子類的Exception放在前面的Catch子句中
    ()Finally 塊的代碼用來清理資源或執行要在Try塊末尾執行的其他操作(可以省略)無論是否產生異常Finally塊都會執行

    結構化異常處理

    異常是在程序設計中無法避免的錯誤設計的程序必須能夠處理所有可能出現的錯誤所以要全面考慮異常處理將一切可能出現異常的代碼都進行try的捕捉然後建立自己的異常處理機制按照不同的異常情況進行分類處理

    異常產生的時候需要知道是什麼原因造成的錯誤以及錯誤的相關信息根據實際情況拋出具體類型的異常然後建立捕捉機制捕捉到異常時做出具體的處理在編寫代碼過程中可以使用系統已定義的相關異常類以及自定義的異常類來實例化並拋出需要的異常如一個不可能實現的接口可以拋出SystemNotSupportedExceptiion的異常來告訴接口的調用者

    在處理異常的時候應該將可處理的具體異常分別在catch 塊中作出相應處理否則程序將終止運行針對每一種異常以不同方式處理避免對所有異常做出一樣的處理並且在異常產生時給用戶一個友好的提示(最終用戶對系統異常的具體內容是不明白的這就需要給出相關的信息提示和解決方案或告訴聯系管理員等)並在可能的情況下給用戶提供選擇(確定和取消)讓用戶來決定系統的運行方向同時程序中要將異常做日志記錄不是所有異常都是必須記錄的例如一些可捕捉並且已經安排程序進行處理的異常就不需要記錄它

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15389.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.