Windows 平台下的異常處理 (一)

2021-07-01 19:54:22 字數 1331 閱讀 2655

在這一節中給大家介紹一下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...