首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 之 C# 異常處理完整指南

     編輯:關於ASP.NET

結構化異常處理(SEH)核心觀念與最佳實務

兩大錯誤處理層面

  1. 頁面輸入驗證: JavaScript/VBScript、ASP.NET 驗證控制項、RegularExpressionValidator。
  2. CLR 結構化異常處理: 跨語言、分層包裝(內部異常包裝於外部異常),便於細分類別處理。

Try-Catch-Finally 標準結構

try
{
    int x = 123 / 0; // 拋出 DivideByZeroException
}
catch (DivideByZeroException ex)
{
    // 處理特定異常
}
catch (Exception ex)
{
    // 處理其他異常
}
finally
{
    // 清理資源、還原設定,無論是否發生異常皆執行
}

捕獲順序原則

子類別異常放前面,基類別 Exception 放最後,避免遮蔽。

異常處理黃金法則

  • 針對不同異常採取不同處理,避免一律吞沒。
  • 給用戶友善提示與可行動作(重試、取消、聯繫管理員)。
  • 記錄異常日誌:檔案(易查閱)、資料庫(可查詢分類)、EventLog(遠端監控)。
  • 不可預期的異常導向專用錯誤頁,避免暴露堆疊資訊。
  • 嚴禁: catch { } 空白捕獲,等同放行異常,不如不寫。
  • finally 釋放非受控資源(連線、檔案控制代碼等)。

自訂異常類別

繼承 ApplicationException 或 Exception,加入業務相關屬性(錯誤代碼、重試建議等),拋出時攜帶內部異常 new MyException("msg", innerEx),保留完整呼叫堆疊。

本文以資料庫操作為例,示範捕獲 SqlException 後記錄日誌並顯示友善訊息,未進一步重試或補償,實務中可視業務需求擴展。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved