uexception.pas
来自「楠楠写的DBiocp例子都是源码」· PAS 代码 · 共 61 行
PAS
61 行
unit uException;
interface
uses
Windows, SysUtils, uWin32Const;
type
TException = class(Exception)
protected
FErrorCode: Integer;
FErrorSubCode: Integer;
FErrorMessage: String;
function GetErrorMessage: String;
published
property ErrorMessage: String read GetErrorMessage;
property ErrorCode: Integer read FErrorCode;
property ErrorSubCode: Integer read FErrorSubCode;
public
constructor Create(Code: Integer; SubCode: Integer); overload;
constructor Create(Code: Integer; SubCode: Integer; const Details: String); overload;
destructor Destroy; override;
end;
implementation
constructor TException.Create(Code: Integer; SubCode: Integer);
begin
inherited Create('');
FErrorCode := Code;
FErrorSubCode := SubCode;
FErrorMessage := '';
end;
constructor TException.Create(Code: Integer; SubCode: Integer; const Details: String);
begin
inherited Create('');
FErrorCode := Code;
FErrorSubCode := SubCode;
FErrorMessage := Details;
Message := 'Error code is ' + IntToStr(Code) + '. Error subcode is ' +
IntToStr(FErrorSubCode) + '. Details are ' + Details;
end;
destructor TException.Destroy;
begin
inherited Destroy;
end;
function TException.GetErrorMessage: String;
begin
Result := uWin32Const.ExceptionMessages[FErrorCode];
if FErrorMessage <> '' then
Result := Result + ' Details are: ' + FErrorMessage;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?