ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
throw

throw 


 

throw ( errorCode {; description} ) 
引数   説明
errorCode  倍長整数 in エラーコードを表す倍調整数
description  テキスト in エラーの説明 (テキスト)
throw {( errorObj )} 
引数   説明
errorObj  オブジェクト in エラー構築用のプロパティを格納するオブジェクト

説明   

throw コマンドは、エラーを作成します。エラーは即座に、あるいはカレントメソッドの終了時に (遅延モード) スローされます。

4Dコード内で例外が発生した場合、throw コマンドで明示的にエラーをスローし、独自のエラーメッセージまたはエラー番号を提示することができます。これは、例外的な状態や無効な入力を知らせるのに便利です。

throw コマンドを使用してスローされたエラーは、通常のエラーと同様に 4Dランタイムによって管理されます。つまり、ON ERR CALLコマンドによって割り込みメソッドが実装されていない場合には、標準のエラーダイアログが表示されます。

このコマンドは 3つのシンタックスをサポートしています:

throw(errorCode{; description})

このシンタックスでは、エラーコードと説明のテキスト (任意) を指定し、エラーは即座にスローされます。
description 引数を渡さなかった場合には、次の情報が提示されます:

  • ホストアプリケーションでは: Error code {errorCode}: (host)
  • コンポーネントでは: Error code {errorCode}: (C00x)
throw(errorObj)

errorObj オブジェクト引数を使うことで、エラー情報をより詳細に指定し、エラー処理の管理をさらに強化できます。このオブジェクト引数には以下のプロパティのほか、messageプロパティのプレースホルダーを置き換えるためのカスタムプロパティを含めることができます。

 

 プロパティ    説明
 componentSignature  text エラーの発生源を一意に識別するための 4文字のラテン文字のシグニチャ。
  • componentSignature が渡されない場合、コマンドはホストデータベースには "host"、コンポ ーネントには "C001"、"C002"、...を使用します。
 errCode  number  エラーコード。
  • errCode が渡されない場合、コマンドは -1 を使用します。
 message  text  エラーの説明。
  • message には、errorObj オブジェクト引数に追加されたカスタムプロパティによって置き換えられるプレースホルダーを含めることができます。各プレースホルダーは、置き換えに使用するカスタムプロパティ名を中括弧 {} で囲むことで指定します。
  • message が渡されない場合、または空文字列の場合、コマンドはカレントデータベースの xliff ファイルを検索し、"ERR_{componentSignature}_{errCode}" に合致する resname を探します。
    を探します。
 deferred  boolean カレントメソッドの終了時またはTry ブロックの終了時にエラーを延期するかどうかを指定します。デフォルト値は false です。

このシンタックスを使用すると、Last errors で errorObjオブジェクトが返されます。

注記: 同じプロジェクトメソッド内でこのコマンドを複数回呼び出して、複数のエラーを生成することができます。遅延モードを使って、これらのエラーを一度にスローできます。

throw 

このシンタックスは、カレントエラーをすべて遅延モードでスローします。つまり、これらのエラーはエラースタックに追加され、カレントメソッド終了時に処理されます。これは通常、ON ERR CALL コールバック内でおこなわれます。

  • アプリケーションにおいて: 発生したエラーはエラースタックに追加され、カレントメソッド終了時にアプリケーションの ON ERR CALL メソッドが呼び出されます。Last errors 関数はエラースタックを返します。
  • コンポーネントにおいて: エラースタックはホストアプリケーションに送信され、ホストアプリケーションの ON ERR CALL メソッドが呼び出されます。

 var $code : Integer
 var $description : text
 $code:=50042 // カスタムコード
 $description:=“”
 throw($code ;$description// "これはカスタムエラーです" というメッセージと errCode = 50042 でエラーをスローします


throw({errCode: 1; message: "これはエラーです"}) // "これはエラーです" というメッセージと errCode = 1 でエラーをスローします


throw({errCode: 1}) // "Error code: 1 (host)" というメッセージと errCode = 1 でエラーをスローします


throw({message: "これはエラーです"})  // "これはエラーです" というメッセージと errCode = -1 でエラーをスローします


throw({message: "これはエラーです"; deferred: True}) // "これはエラーです" というメッセージと errCode = -1 でエラーを遅延モードでスローします


throw({componentSignature: "xbox"; errCode: 600; name: "myFileName"; path: "myFilePath"; deferred: True})
// "ファイル myFileName が見つかりません (myFilePath)" というメッセージのエラーを遅延モードでスローします



参照 

ASSERT
Last errors
ON ERR CALL

 
プロパティ 

プロダクト: 4D
テーマ: 割込
番号: 1805

 
ページの目次 
 
履歴 

初出: 4D v20 R2
変更: 4D v20 R5

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20 R7)