ASSERT
ASSERT ( boolExpression {; messageText} )
引数 | 型 | 説明 | |
---|---|---|---|
boolExpression | Boolean | → | ブール式 |
messageText | Text | → | エラーメッセージテキスト |
説明
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の場合、以下がエラーダイアログに表示されます:
//"アサーション違反: クライアント名が空です"