#include <iostream>
using namespace std;
#include <exception>
void dis()
{
cout<<"terminate disabled "<< endl;
}
void display() throw(int,double)
{
if(0)
throw int();
if(0)
throw double();
if(1)
throw string();
}
int main()
{
set_unexpected(dis);
try
{
display();
}
catch(int)
{
cout<<"int "<< endl;
}
catch(double)
{
cout<<"double "<< endl;
}
catch(string)
{
cout<<"string "<< endl;
}
system("pause");
return 0;
}
現在的產量爲異常處理
terminate disabled
,然後程序終止
而是的set_unexpected時,我寫
set_terminate(dis);
產量爲
terminate disabled
terminate disabled
爲什麼這個dicrepancy?
你不應該在'using namespace std;'語句下包含頭部。 – rubenvb
@als它是互聯網上給出的GCC的Mingw端口 – avinash
我寧願擺脫異常規範,而不是找出它們。異常規範可能很難獲得並保持正確,模板非常糟糕,並且類型系統複雜化等等。 –