2014-07-01 35 views
1
try/catch語句中拋出

我不可能找到正是我的問題的一個線程,因此,如果有人知道它是否已經解決,請轉發給我:)異常被在VS2008

我上的Visual C工作++ 2008,版本9.0.21022.8 RTM。我創建了一些測試,但VisualStudio中總是在這個異常

bool exceptionCaught = false; 
try 
{ 
    char* buff = NULL; 
    buff[0] = 10; 
} 
catch (...) 
{ 
    exceptionCaught = true; 
} 

我在Debugging-取消選中所有的箱子破>例外,我試圖在工具 - >選項對話框中的所有選項,在調試部分。 我正在使用異常處理/ HEA(但無論如何,/ EHsc不會改變任何東西)

這段代碼完美地在另一臺計算機上工作,但即使使用它的配置我的行爲並沒有改變,它始終打破所有的時間.. 。

有什麼我失蹤?另一個選項/菜單?

+1

C++異常處理不捕獲[結構化異常(SEH)](http://msdn.microsoft.com/en-us/library/windows/desktop/ms680657%28v=vs.85%29.aspx)。 –

+0

「這段代碼在另一臺計算機上完美工作」......但應該嗎?這段代碼不好,很難說出你甚至試圖用它做什麼。 – crashmstr

回答

2

通過空指針寫入在C++中是未定義的行爲。沒有理由爲什麼它應該生成一個C++異常。您不能使用C++異常模型來處理直接寫入無效地址。

它可能會產生某種形式的操作系統錯誤;這也可以稱爲「異常」,但它與C++異常無關。