2012-03-28 65 views
1

我想用一個類來引發異常,但必須拋出一個異常。我怎樣才能讓這個類,以便當引發異常時,它將值傳遞給處理程序?C++解析異常類中的參數

回答

5

你可以實現你自己的異常類。

struct MyException 
{ 
    MyException(int v) : val(v) {}; 
    int val; 
}; 

... 

try 
{ 
    throw MyException(5); 
} 
catch (const MyException& m) 
{ 
    assert(m.val == 5); 
} 
+0

thx這就是我想要做的 – Melkon 2012-03-28 13:28:27

+2

注意:建議按值拋出並按引用方式捕獲。 – Marius 2012-03-28 13:28:39

+3

@MariusBucur:除了你實際上打算修改捕獲的異常(因此一般重新拋出異常)之外,還推薦從'std :: exception'繼承異常,引用catch可以擴展爲'const'引用。 – 2012-03-28 13:36:26