CodeGym
AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題

課程

  • 評論
  • 關於我們
開始
開始學習
立即開始學習
  • My Progress
  • Courses
  • 任務地圖
  • 課程
  • RAII + 例外

    C++ SELF
    等級 54,課程 0
    解析為什麼在 C++ 中資源會在例外發生時自動釋放(呼叫堆疊展開並執行解構函式)、RAII 如何防止資源洩漏但不能防止「部分應用」的變更、如何表述並維持類的不變量,以及為什麼在方法中的操作順序對於例外處理非常重要(以 std::vector、 push_back、計數器 next_id_ 與索引不同步為例)。最後——實用技巧與典型錯誤,包括規則:解構函式不應拋出例外。
    可用
  • 例外安全性保證:basic / strong / no‑throw

    C++ SELF
    等級 54,課程 1
    解析方法在拋出例外時具體承諾了什麼:物件的 有效性( basic guarantee )、「要麼全部成功,要麼什麼都不做」( strong guarantee )以及禁止例外外溢( no‑throw guarantee )。以類似 TaskTracker 的範例展示如何在 std::vector 與索引間維護不變式,如何通過 try/ catch 做回滾,以及為何要謹慎使用 noexcept。
    可用
  • commit/rollback 慣用法

    C++ SELF
    等級 54,課程 2
    我們來分析為什麼 RAII 能保護資源,但不能保證在異常發生時物件不變量不被破壞,以及 commit/rollback 慣用法如何幫助達成「要麼全部生效,要麼全部不生效」。學習如何把方法拆成 prepare → commit → rollback 三個階段,使用臨時物件和以 swap 作為簡短的 commit 步驟,建立強異常安全(strong guarantee),並以 copy-and-swap 在 TaskStore 範例中說明這種方法的特例。
    可用
  • noexcept — 實務意義

    C++ SELF
    等級 54,課程 3
    拆解 noexcept 作為嚴格契約「例外不向外傳播」:函數邊界到底怎麼定義、為何違反會導致 std::terminate、在哪些場合標記是合適的(getter、 swap、析構函數)以及在哪些場合很危險(解析、容器擴張)。另外討論條件版 noexcept(expr)、通過 static_assert 的檢查,以及以 TaskBook 為例的實作練習。
    可用
  • 如何思考錯誤 — 操作前/後的不變式

    C++ SELF
    等級 54,課程 4
    解析在 C++ 中以「成熟」視角看待錯誤:方法契約(前置條件、後置條件與例外時的保證)、物件不變式,以及用於獲得強保證(「要麼全部成功,要麼一切如初」)的 prepare/commit 技術。以迷你類別 TaskList 為例,學習在變更前驗證輸入、透過 validate_invariant() 檢查不變式,並測試邊界情境,包括「操作中途失敗」。
    可用
學習
  • 註冊
  • Java 課程
  • 題目協助
  • 價格
  • Java 語法
社群
  • 用戶
  • 文章
  • 論壇
  • 聊天
  • 成功故事
  • 動態
  • 聯盟計畫
公司
  • 關於我們
  • 聯絡方式
  • 評價
  • 新聞中心
  • CodeGym for EDU
  • 常見問題
  • 支援
CodeGymCodeGym 是一門從零開始學習 Java 程式設計的線上課程。這門課程是初學者精通 Java 的完美方式。它包含超過 1200 題、具即時檢驗功能,以及涵蓋 Java 基礎理論的必要範圍。為了幫助你在學習上成功,我們實作了一系列激勵功能:測驗、程式專案、關於有效學習的內容,以及 Java 開發者職涯相關內容。
追蹤我們
介面語言
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia
繁體中文
Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym
MastercardVisa
"程式設計師是培養出來的,不是天生的" © 2026 CodeGym