2015-10-08 52 views
-1

當我用這樣的結構啓動我的gtest項目時,代碼總是在throw語句處中斷,就好像沒有圍繞它的try-catch一樣。 有沒有一種方法可以改變行爲,使其在catch-block中繼續?C++ googletest處理try-block內的異常

void errornousFunction() 
{ 
    try 
    { 
     int i = 5; 
     throw; 
    } 
    catch (...) 
    { 
     int i = 5; 
    } 
} 

TEST(testCaseName,asdf) 
{ 
    errornousFunction(); 
} 

回答

0
void errornousFunction() 
{ 
    try 
    { 
     int i = 5; 
     throw i; 
    } 
    catch (...) 
    { 
     int i = 5; 
    } 
} 

然後ü可以嘗試

+0

是有這種行爲的解釋?可能是因爲拋出;只會重新拋出一個異常,那時實際上沒有什麼可以重新拋出? – TheTrowser

+0

拋出一個整數是一個非常糟糕的想法。拋出'std :: exception'或派生類。 –