
程式中可能會發生的錯誤有三種,分別是語法錯誤 (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 ...
沒有留言:
張貼留言
0.留言請選擇註冊帳號, Google 或 OpenID 均可
1.歡迎留言交流,但不歡迎垃圾留言及廣告留言
2.文章相關問題歡迎提出,請減少情緒性留言
3.非文章相關內容,請到 G+ 社群或 FB 社團提出
4.問作業之留言會被直接刪除
5.莫忘網路禮節
6.可使用部份HTML標記,如 <b> 、 <i> 、 <a>
7.站長保留刪除留言的權力