我正在使用用于Delphi/C++Builder的EurekaLog bug捕获器。他们的所有例子都是在Delphi中,我使用的是C++Builder。下面的Delphi代码是导致软件异常的示例之一。我试图将其转换为下面的C++,但是我的代码是错误的。你能给我看一下正确的C++代码吗?
来自EurekaLog的Delphi代码
type
EMyException = class(Exception);
Procedure TForm. ButtonClick(Sender: TObject);
begin
raise EMyException.Create('Error Message');
end;
end.我的C++Builder代码不能工作
typedef class{
Exception;
}EMyException;
void __fastcall TForm1::ButtonClick(TObject *Sender)
{
throw new EMyException("Error Message");
}发布于 2018-11-06 18:33:51
您需要派生一个新的类,而不是使用typedef。在调用new时不要使用throw (这是C++Builder中不能用new构造TObject后代的唯一区域)。
class EMyException : public Exception
{
public:
__fastcall EMyException(const String Msg) : Exception(Msg) {}
};
void __fastcall TForm::ButtonClick(TObject *Sender)
{
throw EMyException("Error Message");
}https://stackoverflow.com/questions/53177417
复制相似问题