技術文章
技術問答
My Project
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
文章
問答
Tag
邦友
鐵人賽
搜尋
2026 iThome 鐵人賽
DAY
13
0
自我挑戰組
學習C#續
系列 第
13
篇
Day 13:例外狀況的處理
18th鐵人賽
413570622
2026-09-26 19:58:42
75 瀏覽
分享至
認識 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)並將例外往上一層呼叫端傳遞。
實作範例
留言
追蹤
檢舉
上一篇
Day 12:委派(Delegate)、委派與代理人、Lambda運算式(Lambda Expression)
下一篇
Day 14:LINQ介紹
系列文
學習C#續
共
20
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
16
Day 16:LINQ(排序運算、群組運算)
17
Day 17:select 子句投影作用、LINQ to Object
18
Day 18:發行者/訂閱者模式(Publisher-Subscriber Pattern)
19
Day 19: 擴充方法(Extension Methods)與現代模式比對(Pattern Matching)
20
Day 20:資源釋放與記憶體管理
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
929
組
團體組數
32
組
累計文章數
16527
篇
完賽人數
227
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
17th鐵人賽
14th鐵人賽
12th鐵人賽
18th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
熱門問題
好奇問問各位大大當如果面對上層施壓時,工程師應當如何捍衛自己的工作優先考量權?上層威脅利誘時,又應當如何用溫和不失堅定的語氣讓上司明白自己為什麼這麼做
網咖外掛
讓 AI Agent 唯讀連 PostgreSQL:BEGIN READ ONLY 擋不住 COPY TO PROGRAM,防線該設在交易還是角色?
新的IR ? 適合嗎 Dynamic Incident Response: A Framework for Security Teams
停用網路卡隨機mac 的方式 (Random MAC Addresses for Ethernet Adapters)
熱門回答
讓 AI Agent 唯讀連 PostgreSQL:BEGIN READ ONLY 擋不住 COPY TO PROGRAM,防線該設在交易還是角色?
好奇問問各位大大當如果面對上層施壓時,工程師應當如何捍衛自己的工作優先考量權?上層威脅利誘時,又應當如何用溫和不失堅定的語氣讓上司明白自己為什麼這麼做
網咖外掛
熱門文章
Claude code 新手篇 8.5: Auto mode — 你的預設模式到底在幫你擋什麼
Day 13|多開幾個 Subagent,會比較快嗎?
Day1 | 【前言與觀念】為什麼選擇 n8n?認識 Low-Code 自動化的力量
Ai真的停不下來了嗎
Claude code 新手篇 8:先想清楚再動手 — Plan Mode 與權限模式
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}