你不能(也不应该)在类的定义中设置它。这里没有关于被调用的地方和原因的背景。相反,您需要在运行时分配此异常的任何地方。
这可以通过从EInOutError
派生类,并添加自定义构造函数,它做:
type
ECustomError = class(EInOutError)
public
constructor Create(AMsg: String; ACode: Integer); reintroduce;
end;
constructor ECustomError.Create(AMsg: String; ACode: Integer);
begin
inherited Create(AMsg);
ErrorCode := ACode;
end;
然后,当你抛出异常,你怎么称呼它是这样的...
raise ECustomError.Create('Some error message', 129);
你可以去远一点,这代码添加到您的邮件...
constructor ECustomError.Create(AMsg: String; ACode: Integer);
begin
inherited CreateFmt('%s (Error Code %d)', [AMsg, ACode]);
ErrorCode := ACode;
end;
您的代码试图将在其定义中分配一个值。当然,这不是你要找的。您需要在发生异常时分配此信息,对吗?如果是这样,那么在这个异常类上实现一个构造函数,并且当你创建异常时,它会要求你传递这个变量。 –
你想要显示错误代码还是分配给其他的东西,比如功能? –
@NasreddineAbdelillahGalfout只显示。 – strykerbits