iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
自我挑戰組

學習C#續系列 第 13 篇

Day 13:例外狀況的處理

  • 分享至 

  • xImage
  •  

認識 Exception 類別:

  • C# 中所有例外的最頂層基底類別是 System.Exception。
  • 常見重要屬性:Message:說明錯誤原因的文字字串。
  • StackTrace:記錄錯誤發生時的方法呼叫堆疊歷程,便於追蹤問題原始行數。

簡易的例外處理器(try-catch):

  • try 區塊放置可能拋出例外的程式碼。
  • catch 用於捕捉並處理特定例外;若直接寫 catch (Exception ex),則代表捕捉所有衍生自 Exception 的例外狀況。
  • 若要捕捉特定型別,應將具體例外(如 ArgumentException、FormatException)寫在前面,通用 Exception 放在最後。

finally 敘述:

  • 無論 try 區塊是正常執行結束、透過 return 離開,或是拋出例外被 catch 攔截,finally 區塊內的程式碼保證必定執行。
  • 主要用途:確保外部資源的釋放與清理工作(如檔案串流關閉、資料庫連線切斷、網路連線釋放)。

throw 敘述拋出錯誤:

  • 用於主動擲出一個例外物件(例如 throw new ArgumentException("無效的參數");),中斷目前的正常執行流程。
  • 重新拋出(Rethrow):在 catch 區塊中直接使用單獨的 throw; 關鍵字,可以完整保留原始堆疊歷程(StackTrace)並將例外往上一層呼叫端傳遞。

實作範例
https://ithelp.ithome.com.tw/upload/images/20260926/20178925xplcnFvWFC.png

https://ithelp.ithome.com.tw/upload/images/20260926/20178925U33YFiTh2Q.png

https://ithelp.ithome.com.tw/upload/images/20260926/20178925LVS8UgDOHn.png

https://ithelp.ithome.com.tw/upload/images/20260926/20178925mHShBVmJPm.png


上一篇
Day 12:委派(Delegate)、委派與代理人、Lambda運算式(Lambda Expression)
下一篇
Day 14:LINQ介紹
系列文
學習C#續 共 20 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言