Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA™ InTouch HMI

TRY ​.​.​. CATCH

  • Last UpdatedApr 28, 2026
  • 1 minute read

TRY ... CATCH を使用すると、プログラムを終了せずに実行したまま、コードのブロックで発生する一部またはすべてのエラーを処理することができます。コードの TRY の部分は try ブロックと呼ばれます。コードの CATCH の部分(catch ブロック)の例外を処理します。

一般的な TRY ... CATCH の形式を以下に示します。

TRY

[try statements] ’ 保護されたセクション

CATCH

[catch statements]

ENDTRY

結果は、

tryStatements

エラーが発生する可能性のあるステートメント。複合ステートメントである場合があります。tryStatement は保護されたセクションです。

catchStatements

関連付けられた Try ブロックで発生するエラーを処理するステートメント。複合ステートメントである場合があります。

Catch ブロック内のステートメントは、Try ブロックからスローされる .NET System.Exception である予約された ERROR 変数を参照することがあります。Catch ブロック内のステートメントは、Try ブロックから例外がスローされた場合にのみ実行します。

TRY ... CATCH は次のように実行します。

  1. ランタイム エラー処理が TRY で開始します。エラーになる可能性のあるコードを try ブロックに配置します。

  2. ランタイム エラーが発生しなかった場合、スクリプトは通常通り実行します。Catch ブロック ステートメントは無視されます。

  3. ランタイム エラーが発生した場合、try ブロックの残りの部分は実行されません。

  4. ランタイム エラーが発生した場合、プログラムは直ちに CATCH ステートメントにジャンプし、catch ブロックが実行されます。

    最もシンプルな例外処理は、プログラムを停止し、例外メッセージを書き出してプログラムを続行することです。

    エラー変数は文字列ではありませんが、System.Exception の .NET オブジェクトです。これは、シンプルな CATCH ステートメントでも例外のタイプを特定できることを意味します。GetType() メソッドを呼び出して例外のタイプを特定し、複数の catch ブロックを実行する場合と同様に目的の操作を実行します。

dim command = new System.Data.SqlClient.SqlCommand;

dim reader as System.Data.SqlClient.SqlDataReader;

command.Connection = new System.Data.SqlClient.SqlConnection;

try

command.Connection.ConnectionString = "Integrated Security=SSPI";

command.CommandText="select * from sys.databases";

command.Connection.Open();

reader = command.ExecuteReader();

while reader.Read()

me.name = reader.GetString(0);

LogMessage(me.name);

endWhile;

catch

LogMessage(error);

endtry;

if reader <> null and not reader.IsClosed then

reader.Close();

ENDIF;

if command.Connection.State == System.Data.ConnectionState.Open then

command.Connection.Close();

ENDIF;

注意: 上記のコード例では、非推奨の System.Data.SqlClient メソッドを使用しています。それではなく、SQL サーバー クエリーに SQLData スクリプト ライブラリを使用してください。