| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- (*
- Brook for Free Pascal
- Copyright (C) 2014-2019 Silvio Clecio
- See the file LICENSE.txt, included in this distribution,
- for details about the copyright.
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *)
- { Exceptions classes. }
- unit BrookException;
- {$i brook.inc}
- interface
- uses
- BrookConsts, SysUtils;
- type
- { Is a metaclass for @link(EBrook) class. }
- EBrookClass = class of EBrook;
- { Handles general exception in Brook. }
- EBrook = class(Exception)
- public
- { Creates an instance of @code(EBrook). }
- constructor Create(AInstance: TObject; const AMsg: string); overload;
- { Creates an instance of @code(EBrook). }
- constructor Create(AClass: TClass; const AMsg: string); overload;
- { Creates an instance of @code(EBrook). }
- constructor Create(AName: string; const AMsg: string); overload;
- { Creates an instance of @code(EBrook) with a formated message. }
- constructor CreateFmt(AInstance: TObject; const AMsg: string;
- const AArgs: array of const); overload;
- { Creates an instance of @code(EBrook) with a formated message. }
- constructor CreateFmt(AClass: TClass; const AMsg: string;
- const AArgs: array of const); overload;
- { Creates an instance of @code(EBrook) with a formated message. }
- constructor CreateFmt(AName: string; const AMsg: string;
- const AArgs: array of const); overload;
- end;
- { Handles the exception for 404 error. }
- EBrookHttp404 = class(EBrook);
- { Handles the exception for 500 error. }
- EBrookHttp500 = class(EBrook);
- implementation
- constructor EBrook.Create(AInstance: TObject; const AMsg: string);
- var
- VClassName: string;
- begin
- if Assigned(AInstance) then
- VClassName := AInstance.ClassName
- else
- VClassName := ES;
- inherited CreateFmt(BROOK_ERROR_MASK, [VClassName, AMsg]);
- end;
- constructor EBrook.Create(AClass: TClass; const AMsg: string);
- var
- VClassName: string;
- begin
- if Assigned(AClass) then
- VClassName := AClass.ClassName
- else
- VClassName := ES;
- inherited CreateFmt(BROOK_ERROR_MASK, [VClassName, AMsg]);
- end;
- constructor EBrook.Create(AName: string; const AMsg: string);
- begin
- inherited CreateFmt(BROOK_ERROR_MASK, [AName, AMsg]);
- end;
- constructor EBrook.CreateFmt(AInstance: TObject; const AMsg: string;
- const AArgs: array of const);
- var
- VClassName: string;
- begin
- if Assigned(AInstance) then
- VClassName := AInstance.ClassName
- else
- VClassName := ES;
- inherited CreateFmt(Format(BROOK_ERROR_MASK, [VClassName, AMsg]), AArgs);
- end;
- constructor EBrook.CreateFmt(AClass: TClass; const AMsg: string;
- const AArgs: array of const);
- var
- VClassName: string;
- begin
- if Assigned(AClass) then
- VClassName := AClass.ClassName
- else
- VClassName := ES;
- inherited CreateFmt(Format(BROOK_ERROR_MASK, [VClassName, AMsg]), AArgs);
- end;
- constructor EBrook.CreateFmt(AName: string; const AMsg: string;
- const AArgs: array of const);
- begin
- inherited CreateFmt(Format(BROOK_ERROR_MASK, [AName, AMsg]), AArgs);
- end;
- end.
|