C++ 捕获自定义异常C++;

C++ 捕获自定义异常C++;,c++,exception,C++,Exception,我有一个异常类: #ifndef OBJECTEXCEPTION_H_ #define OBJECTEXCEPTION_H_ class ObjectException: public std::logic_error { public: ObjectException (const std::string& raison) :std::logic_error(raison){}; }; class Object1Exception: public O

我有一个异常类:

#ifndef OBJECTEXCEPTION_H_
#define OBJECTEXCEPTION_H_

class ObjectException: public std::logic_error
{
public:
    ObjectException (const std::string& raison)
            :std::logic_error(raison){};
};

class Object1Exception: public ObjectException
{
public:
    Object1Exception (const std::string& raison)
    : ObjectException(raison){};
};

#endif 
我有一个引发此异常的方法:

void Object1::myMethod(int type) {
if (type == 0) {
    throw new Object1Exception(type);
}

...
}
现在我使用这个方法:

try{
    obj1->myMethod(0);
}
catch(Object1Exception& error){

}
但我有这个错误

terminate called after throwing an instance of 'tp::Object1Exception*'

我不明白为什么没有捕获异常。

Codethrow Object1Exception(type)不带
新的
;您正在抛出指向异常的指针,而不是异常本身


BTW,如注释所示,错误消息非常清楚,它告诉您关于某个指针类型的实例<代码>抛出一个实例:“TP:Objuts1Exp**”/Cuff>…< /P>除非您是专家,否则永远不要在C++中说<代码>新< /代码>。我只想指出错误消息也告诉了您这个问题——“TP:Objist1Ext*”,*含义指针。