void ComPort::Close()
{
try
{
if (m_file.m_hFile != INVALID_HANDLE_VALUE)
m_file.Close();
}
catch (CFileException *e)
{
TCHAR strCause[256];
e->GetErrorMessage(strCause, 256);
e->Delete();
throw ComPortException(strCause);
}
m_hPort = NULL;
}
大神們,如何能進入catch呢?
catch 不是通過throw進入的嗎?但throw又在catch里面
uj5u.com熱心網友回復:
有些函式內部會拋出例外。uj5u.com熱心網友回復:
某些例外是編程者手工throw拋出的,某些是C++的runtime捕獲后拋出的(空指標、陣列越界、浮點錯誤等等)。當你用try‘監控’這段代碼時,若有例外發生就會進入你的預設catch例外處理段進行例外型別匹配,一旦匹配成功就會被該段例外處理代碼進行處理。如何處理那是你自己的事情,譬如你上面的代碼可以只簡單記錄一下例外型別,并再次拋出該例外給上一層呼叫函式處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/72735.html
上一篇:C++實作Http Post請求 代碼怎么運行出這個結果
下一篇:求解是code:blocks的問題還是什么問題,無法給double型別賦值;希望能解答下這個問題困擾幾個小時了!
