スレッド関数での例外処理

提供: RAD Studio
移動先: 案内検索

スレッド関数の作成 への移動


Execute メソッドでは、スレッドで発生する例外をすべて捕捉する必要があります。スレッド関数で例外を捕捉できない場合、アプリケーションでアクセス違反が発生するおそれがあります。その例外は IDE で捕捉されるので、アプリケーションの開発時には、このことがはっきりとはわからない場合があります。しかし、アプリケーションをデバッガの外部で実行すると、例外によって実行時エラーが発生し、アプリケーションが動作しなくなります。

スレッド関数の内部で発生した例外を捕捉するには、次のように、Execute メソッドの実装に try...except ブロックを追加します。

procedure TMyThread.Execute;
begin
  try
    while not Terminated do
  PerformSomeTask;
  except
    { do something with exceptions }
  end;
end;
void __fastcall TMyThread::Execute() {
	try {
		while (!Terminated)
			PerformSomeTask();
	}
	catch (...) {
		// do something with exceptions
	}
}

関連項目