メインコンテンツまでスキップ
バージョン: 20 R7 BETA

ASSERT

ASSERT ( boolExpression {; messageText} )

引数説明
boolExpressionBooleanブール式
messageTextTextエラーメッセージテキスト

説明

ASSERT コマンドはboolExpression 引数に渡されたアサーションを評価し、Falseを返す場合にはコードの実行を中止するとともにエラーメッセージを出します。このコマンドはインタープリタモードでもコンパイル済みモードでも動作します。

boolExpression 引数がTrueの場合は、何も起こりません。Falseになった場合には、このコマンドはエラー-10518をトリガーし、デフォルトでアサーションのテキストとその後に"アサーション違反:"というメッセージを表示します。このエラーはON ERR CALLコマンドで実装されたメソッドを使う事により割り込み可能で、それにより、例えばログファイルに情報を記録するなどすることができます。

任意の引数messageText を使用する事で、アサーションのテキストの代わりにカスタムのエラーメッセージを表示する事ができます。

アサーションはコードに挿入された指示命令で、コード実行中の例外を検知するために使用します。ある時点において式の検証をしたときにTrueであれば正常であり、そうでなければ例外が発生したことになります。アサーションはなにより、発生するはずのないケースを検知するために使用します。主にプログラミングバグを検知するために使用します。SET ASSERT ENABLED コマンドを使用して、(例えばバージョンにより)アプリケーションのすべてのアサーションを全体として有効にしたり無効にしたりできます。

プログラミングにおけるアサーションについての詳細は、Wikipediaの関連情報をご覧ください: http://ja.wikipedia.org/wiki/表明

例題 1

レコードに対する処理を実行する前に、開発者はレコードが正しく読み/書きモードでロードされたかを確認する必要があります:

 READ WRITE([Table 1])
 LOAD RECORD([Table 1])
 ASSERT(Not(Locked([Table 1])))
  // レコードがロックされていると -10518 エラーが生成される

例題 2

アサーションはプロジェクトメソッドに渡された引数をテストして、異常な値を検知するために使用できます。以下の例題では、カスタム警告メッセージが表示されます。

  // $1に渡された名前に基づき、クライアントの番号を返す
 var $1 : Text // クライアントの名前
 ASSERT($1#"";"クライアント名が空です")
  // このケースでは空の名前は異常な値です
  // アサーションがfalseの場合、以下がエラーダイアログに表示されます:
  //"アサーション違反: クライアント名が空です"

参照

Asserted
Get assert enabled
SET ASSERT ENABLED

プロパティ

コマンド番号1129
スレッドセーフである
システム変数を更新するerror