C++ 速查手冊 V1.00 - 單元 6 - 例外處理




程式中可能會發生的錯誤有三種,分別是語法錯誤 (syntax error) 、執行期間錯誤 (runtime error) 及語意錯誤 (semantic error) ,其中編譯器會直接檢查出語法錯誤,如果含有語法錯誤的程式無法過編譯,例如


$ g++ u06.cpp
u06.cpp:4:14: error: expected ';' at end of declaration
   int a = 12
             ^
             ;
1 error generated.
$

u06.cpp 檔案中漏打一個分號,編譯器挑出錯誤並印出相關資訊。


語意錯誤比較麻煩,若一個程式中有語意錯誤,這個程式可以順利通過編譯,卻會跑出非預期的結果。有語意錯誤的程式必須重新檢查程式的邏輯,手動找出錯誤並修正錯誤,因此大型軟體通常依功能拆分成各個小模組,每個小模組都分開測試,都測試無誤後才重新整合為單一軟體。


至於執行期間錯誤通常不是程式邏輯的問題,像是存檔時檔案不存在或是儲存空間不夠都會造成發生錯誤,這些錯誤發生的原因都不是程式的問題。因此 C++ 提供一套例外處理 (exception handling) 的機制,讓我們寫程式可以檢查執行期間錯誤。


下面我們分成數個部分介紹 C++ 的例外處理



continue ...

沒有留言: