|
- unit uutlExceptions;
-
- {$mode objfpc}{$H+}
-
- interface
-
- uses
- Classes, SysUtils;
-
- type
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- EutlException = class(Exception);
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- EutlInvalidOperation = class(Exception);
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- EutlOutOfRange = class(EutlException)
- private
- fMin: Integer;
- fMax: Integer;
- fIndex: Integer;
-
- public
- property Min: Integer read fMin;
- property Max: Integer read fMax;
- property Index: Integer read fIndex;
-
- constructor Create(const aIndex, aMin, aMax: Integer);
- constructor Create(const aMsg: String; const aIndex, aMin, aMax: Integer);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- EutlArgument = class(EutlException)
- private
- fArgument: String;
-
- public
- property Argument: String read fArgument;
-
- constructor Create(const aArgument: String);
- constructor Create(const aMsg, aArgument: string);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- EutlArgumentNil = class(EutlArgument)
- public
- constructor Create(const aArgument: String);
- constructor Create(const aMsg, aArgument: string);
- end;
-
- implementation
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //EutlOutOfRange////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlOutOfRange.Create(const aIndex, aMin, aMax: Integer);
- begin
- Create('', aIndex, aMin, aMax);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlOutOfRange.Create(const aMsg: String; const aIndex, aMin, aMax: Integer);
- var
- s: String;
- begin
- fIndex := aIndex;
- fMin := aMin;
- fMax := aMax;
- s := Format('index (%d) out of range (%d:%d)', [fIndex, fMin, fMax]);
- if (aMsg <> '') then
- s := s + ': ' + aMsg;
- inherited Create(s);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //EutlArgument//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlArgument.Create(const aArgument: String);
- begin
- inherited Create(aArgument + ' is not valid');
- fArgument := aArgument;
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlArgument.Create(const aMsg, aArgument: string);
- begin
- inherited Create(aMsg);
- fArgument := aArgument;
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //EutlArgumentNil///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlArgumentNil.Create(const aArgument: String);
- begin
- inherited Create('argument nil: ' + aArgument, aArgument);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- constructor EutlArgumentNil.Create(const aMsg, aArgument: string);
- begin
- inherited Create(aMsg, aArgument);
- end;
-
- end.
|