你不能(也不應該)在類的定義中設置它。這裏沒有關於被調用的地方和原因的背景。相反,您需要在運行時分配此異常的任何地方。
這可以通過從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