忍者ブログ

ゆるいSEの小ネタ集

ゆるキャラ好きのITエンジニアが書くTips。 ゆるキャラ命なSEのIT徒然草 https://itmagic.hatenablog.com/

[Delphi]例外処理

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

[Delphi]例外処理


■通常のエラー処理
  try
    //処理
  except
    on E: Exception do
    begin
      Messagebox.ShowMessage('異常終了' + e.Message);
    end;
  end;

■データベース関連のエラー処理
  try
    //処理
  except
    on Err: EOracleError do
    begin
      OracleSession1.Rollback;    //ロールバック
      MessageDlg(Err.Message, mtError, [mbOK], 0);
      Exit;
    end;
  end;
※この書き方だと、DB以外のエラー(例えば数値計算のエラー発生時等)に例外として拾ってくれない。
  そういう意味では最初のものが無難。

■終了処理を付加するパターン
  try
    try
      //処理
    except
      on Err: EOracleError do
      begin
        OracleSession1.Rollback;    //ロールバック
        MessageDlg(Err.Message, mtError, [mbOK], 0);
        Exit;
      end;
    end;
  finally
    odtWork.Close  //TOracleDataSetのクローズ処理など。
  end;
  ※finallyを書く場合、javaとは違い各々try句を入れ子にする必要がある(うっとおしい!)

■わざと例外を手軽に発生させる例
var
iTest: integer;
begin
iTest := 0;
sMsg := IntToStr(10 div iTest);

→例外発生時の挙動を確認するのに使える。

■強制的にエラーを発生させる
raise Exception.Create('エラー発生');
PR

コメント

ただいまコメントを受けつけておりません。

プロフィール

HN:
ゆるキャラ命
性別:
非公開

P R