@IfError (式言語)

ステートメントがエラーを返すとき、Null 文字列 ("") または代替ステートメントの値を返します。

注: この @ 関数は、Release 6 で新しく追加されました。
注: このコマンドは Release 7 で無効になりました。

構文

@IfError( statement1 ; statement2 )

パラメータ

statement1

式ステートメントです。このステートメントは最初に実行されます。

statement2

オプション。式ステートメントです。最初のステートメントがエラーを返す場合、このステートメントが利用可能であれば実行されます。

戻り値

statementReturn

使用法

エラーの値を取得するには、2 番目のステートメントで $Error を使用します。

このコマンドは、次の一連のコマンドと交換しなければなりません。

result := statement1;
@If(@IsError(result);statement2;result)

この関数はエラーメッセージを傍受してそれを所定の値に置き換えるため、エラーが発生すると、エラーの原因がわからなくなる可能性があります。デバッグの際には、必要に応じてエラー処理を一時的に解除してください。こうすると、エラーメッセージのテキストを確認 (例 4 に示すようなテキストを表示) できます。

  1. このエージェントは、@DbLookup ステートメントの戻り値にエラーがあるかどうかを調べます。@DbLookup ステートメントによってエラーが発生した場合は、「Not available」という文字列が返されます。
    FIELD Phone :=
    @IfError(
    @DbLookup(""; "Snapper" : "names.nsf"; "People";
    @Right(Name; " ") + " , " + @Left(Name; " "); "OfficePhoneNumber");
    "Not available")

    次のエージェントは、@IfError の代わりに @If を使用して同じ処理を実行します。

    result := @DbLookup("";"Snapper":"names.nsf";"People";
    @Right(Name;" ") + " , " + @Left(Name; " "); "OfficePhoneNumber");
    FIELD Phone := @If(@IsError(result);"Not available";result)

  2. 次のコードを表示用の計算結果フィールドに追加すると、[product] フィールドに入力された製品の価格が、ページの更新後に表示されます。[product] フィールドのデフォルト値として「Enter product name here」という文字列を入力します。[product] フィールドに製品名を入力して [F9] キーを押すと、価格が [Goods] ビューから抽出されます。このビューでは、最初のソート列に製品名、2 番目の列に価格が表示されています。製品名が認識されない場合や、検索中に他のエラーが発生した場合は、「Unable to retrieve requested price. Aborting lookup」というメッセージが表示されます。コードを記述した [Get Price] というアクションボタンを追加できます。ユーザーにページの更新を指示するために、@Command([ViewRefreshFields]) というコードを記述しています。
    @If(product="Enter product name here";0;@IfError(@DbLookup("" : "" ; "product/server" : "filename¥¥productdatabase.nsf" ; "Goods" ; product ; 2); "Unable to retrieve requested price. Aborting lookup"))
  3. 次の式を [Apply font] ホットスポットボタンに追加すると、リッチテキストの [本文] フィールドで入力またはハイライト表示する文字列に、ダイアログリストの [fonts] フィールドから選択したフォントが適用されます。[fonts] フィールドには、[フィールドのプロパティ] インフォボックスの [式で選択肢を設定] ボックスで @FontList 関数が指定されているため、使用可能なフォントのリストが表示されます。[fonts] フィールドでフォントが選択されていないときは、選択するよう指示するエラーメッセージが表示されます。
    @Command([EditGoToField]);"Body");
    @Command([EditSelectAll]);
    @IfError(@Command([TextSetFontFace];fonts);@Prompt([Ok];"Error encountered";"You must select a font first"))
  4. 検索結果がある場合は、その検索結果が返されます。ただし、検索が失敗した場合は、エラー条件にならずにエラーメッセージのテキストが返されます。これは、デバッグで役立つ場合があります。
    @IfError(@DbLookup("":"NoCache"; ""; "ById"; ID; 2); 
    @Text($Error))

クロスリファレンス

LotusScript® 言語の On Error ステートメント