代码如下:

#include <iostream>

class TException

{

public:

TException()

{

std::cout << "hello,world!" << std::endl;

}

};

double Func(double x, double y)

{

if (0 == y)

{

throw  new TException();

}

}

int WrapFunc()

{

Func(0, 0);

return 0;

}

int main()

{

try

{

WrapFunc();

}

catch (TException* e)

{

std::cout << "catch exception" << std::endl;

}

catch (...)//捕获所有的异常

{

std::cout << "catch all exception" << std::endl;

}

    return 0;

}

分析

当抛出new TException,catch语句必须是定义为指针,当抛出TException()对象的时候,catch语句必须是对象可以是catch(TException& e)或者catch(const TException& e)