iT邦幫忙

2026 iThome 鐵人賽

DAY 30
0
自我挑戰組

學習C#續系列 第 30 篇

Day 30: 專案重構、全域例外防護與 30 天學習結業回顧

  • 分享至 

  • xImage
  •  

全域例外防護(Global Exception Handling):

  • 主迴圈 Try-Catch 圍阻:主控台程式若發生未捕捉的例外會直接閃退。在 Main 最外層或互動選單的迴圈核心加入 try-catch,可保證即使底層發生例外(如 IO 失敗、資料庫例外),系統依然能友善提示並繼續運作。
  • 非同步未處理例外(AppDomain.UnhandledException):在程式進入點掛載 AppDomain.CurrentDomain.UnhandledException 事件,作為最後一道防線,將嚴重崩潰日誌(Crash Log)寫入實體檔案以供排查。

專案重構精簡(Code Refactoring):

  • DRY 原則(Don't Repeat Yourself):抽出通用的「輸入提示與驗證(Input Helper)」、「終端機格式化輸出」方法,消除選單與商業邏輯中充斥的重複代碼。
  • 模式簡化與資源管理:善用 using 陳述式確保 DbContext 與 StreamWriter 等未受控資源能被及時釋放;以標準 Lambda 與 LINQ 簡化巢狀迴圈與累加運算。

30 天學習結業核心回顧:

  • 基礎與核心語法:型別系統、控制流程、物件導向(封裝、繼承、多型)、泛型與委派。
  • 進階控制與現代特性:非同步程式設計(async/await、Task.WhenAll、CancellationToken)、LINQ 查詢與群組統計。
  • 資料持久化與底層相容:JSON 序列化反序列化(Newtonsoft.Json)、SQLite 嵌入式資料庫結合 EF Core 3.1、原生 C++ 函式庫相依性管理(e_sqlite3.dll)與型別對齊。
  • 架構與品質工程:SOLID 物件導向設計原則、簡單工廠模式、分層架構(Model-Repo-Service-UI)、單元測試(xUnit、AAA 模式、例外與邊界驗證)。

後續進階自學路線推薦:

  1. 跨平台現代 .NET 遷移:從 .NET Framework 4.x 升級至現代 .NET 8 / 9,掌握全新 C# 12 / 13 語法特性(Records、Pattern Matching、Primary Constructors)。
  2. Web 後端開發(ASP.NET Core Web API):將分層架構應用於 RESTful API 開發,深入學習依賴注入容器(Microsoft.Extensions.DependencyInjection)、中介軟體(Middleware)與 Swagger 整合。
  3. 進階資料存取架構:深入學習 EF Core 遷移(Migrations)、關聯實體映射(One-to-Many、Many-to-Many)、Dapper 高效能微 ORM 與交易控制(Transactions)。
  4. 自動化測試與架構模式:引入 Mocking 框架(Moq / NSubstitute)針對依賴介面做單元測試,學習 CQRS 與 Clean Architecture 乾淨架構。

重構與全域防護範例
https://ithelp.ithome.com.tw/upload/images/20261013/20178925g7kk60hWWZ.png

https://ithelp.ithome.com.tw/upload/images/20261013/20178925Wk8DeeuH3H.png

https://ithelp.ithome.com.tw/upload/images/20261013/201789251HDyPaY8kq.png

結果
https://ithelp.ithome.com.tw/upload/images/20261013/201789250Wnv2kMmey.png

當發生非預期錯誤時,錯誤詳情已同步寫入本機 crash_log.txt,終端機不會中斷閃退,維護了控制台應用程式的健壯性。
https://ithelp.ithome.com.tw/upload/images/20261013/20178925TU8gEXuqeo.png

https://ithelp.ithome.com.tw/upload/images/20261013/201789259qS6RGSFKn.png


上一篇
Day 29: 綜合實作專案(二):資料庫串接、LINQ 統計與非同步匯出
系列文
學習C#續 共 30 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言