在這一節中給大家介紹一下windows的下的預設的異常處理,標準c++/c#異常,以及他們的主要區別。在後續(二)中將詳細介紹windows的結構化異常的處理與實現。
void rtluserthreadstart(pthread_start_routine pfnstartaddr, pvoid pvparam)
__except(unhandledexceptionfilter(getexceptioninformation()))
// note: we never get here.
}
rtluserthreadstart 是執行緒在啟動的時候執行的預設**,pfnstartaddr是啟動的入口位址,你可以理解成winmain, main函式(實際上windows的c/c++庫還會做封裝)。try和exception是標準的結構化異常處理,在以後的章節中會詳細介紹,自所以會退出,是因為其呼叫的exitprocess函式。
標準c++的異常一般由於效率的原因,用的比較少,下面是一代**程式,可以看看標準c++的異常處理,主要是以引數的型別和匹配原則,特別要說明的說標準c++的異常處理中沒有finally關鍵字,是windows的結構化異常其進行了擴充套件,引入了__finally關鍵字。
class test
~test ()
private:
int *p;
};int _tmain(int argc, _tchar* argv)
catch (int param)
catch (char param)
catch (...)
return
0;}
c#的異常就比c++的異常用起來多的多,其關鍵字是try,throw,catch和finally,具體的含義大家可以檢視相關的文件,主要的區別在於c#提供了finally語法,其可以保證已經申請的資源等到釋放。
public
class ehclass
catch (system.io.ioexception e)
. message = ", path, e.message);
}//catch (system.argumentexception e)
//finally}}
catch (system.io.ioexception e)
. message");
}catch (system.argumentexception e)
// do something with buffer...}}
class program
}
Windows平台下安裝NLTK
在網上找了一圈,沒找到幾個靠譜的安裝流程,在上找到各平台下安裝流程 windows平台 以下操作假定你的機器上還沒有安裝python,如果你已經安裝python,請跳過最後一步,只需要安裝nltk。32位二進位製版安裝 1.安裝python 選擇2.7.3版本。2.安裝numpy 可選 3.安裝nl...
Lua Socket在Windows平台下的使用
lua的乙個比較實用的拓展庫 lua socket 在windows 下平台的使用。在網上檢視了許多關於lua socket的安裝,發現大部分都是在 linux 下的安裝,關於在 windows 平台下的使用說明很少,而且發現問題挺多。本文將介紹乙個極其簡單的方式介紹 lua socket 在win...
Windows平台下eclipse配置
安裝 go 環境 環境變數配置 對 go 的環境變數進行配置,有些安裝是預設配置,有些需要手動的配置環境變數。go 環境驗證,在控制台中輸入 go version,如顯示以下內容,則表示輸入成功。安裝環境 201606061100 platformruntime 安裝配置 mingw64 mingw...