C++的try塊與異常處置及調試技巧實例解析。本站提示廣大學習愛好者:(C++的try塊與異常處置及調試技巧實例解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C++的try塊與異常處置及調試技巧實例解析正文
本文以示例情勢簡述了C++ try塊的異常處置與調試技巧,有助於讀者溫習並加深對try塊的懂得。
1、格局:
拋出異常throw 異常類型例如throw runtime_error("Data must refer to same ISBN");
try{ program-statements }catch(exception-specifier) { handler-statement; }catch(exception-specifier) { handler-statement; }
2、此處須要留意:
1.一旦catch子句履行停止,法式流程立刻持續履行緊跟著最初一個catch子句的語句。
2.在try塊中聲明的變量,包含catch子句中聲明的變量,不克不及在try裡面援用。
3.exception-specifier中有許多類型的異常,好比runtime_error類型是尺度庫異常類中的一種,留意每一個尺度庫異常類都界說了名為what的成員函數,例如runtime_error err,err.what();前往的是字符串。
4.在try嵌套try時,拋出一個異常,起首搜刮拋出異常的函數
5.若何在拋出異常後,沒有try塊來捕捉,則主動挪用terminate(在exception頭文件中)終止法式的履行
3、調試技巧:
1.應用預處置調試例如:
#ifndef NDEBUG cerr<<"starting main"<<endl; #endif $CC -DNDEBUG main.c
可以在main.c開首供給#define NDEBUG預處置敕令
2.還有一些調試時異常有效的常量__FILE__ (以後文件的途徑例如E:\main.c) __LINE__(__LINE__地點確當前行) __TIME__(以後時光) __DATE__(以後日期)
3.罕見的調試技巧是應用NDEBUG預處置變量和assert(在cassert頭文件中界說)預處置宏 assert(expr); 假如expr成果為false,assert輸入信息並終止法式,不然不做操作。