delphi.gif (306 バイト) 独自の例外の作り方


独自の例外クラスを作って、例外オブジェクトをスローする方法を説明します。この方法を使用すると、ネストのどこで発生した例外も一個所で受け取って処理できます。

toach.gif (917 バイト) 独自の例外クラスを作るには

  1. ユニットを追加して独自例外クラスを定義します。例外クラスはExceptionクラスから派生させます。
  2. 例外クラスで独自のエラー処理を行うためのコードを追加します。

 

toach.gif (917 バイト) 例外を発生させるには

  1. エラー検出コードでエラーを検出したら、上記の例外クラスのインスタンスを作成します。
  2. そのインスタンスをraise文によってスローします。

 

delphi1.gif (322 バイト)

例外スロー/キャッチ部分
program MyExcep;

uses
  SysUtils,
  ExcepClass in 'ExcepClass.pas';

{$APPTYPE CONSOLE}
var
 excep: TMyException;
begin
 try
  excep := TMyException.Create;
  raise excep;
 except
  on TMyException do excep.ShowIt;
 end;
end.
例外オブジェクト
unit ExcepClass;

interface

uses
 SysUtils;

type
 TMyException = class(Exception)
 public
  Constructor Create;
  procedure ShowIt;
 end;

implementation

constructor TMyException.Create;
begin
 inherited Create('My Exception occured.');
end;

procedure TMyException.ShowIt;
begin
 writeln(message);
end;

end.