クラス StructureTryCatch

すべての実装されたインタフェース:
ClientInterface, CommonInterface, jp.ne.mki.wedge.run.interfaces.RuleEngineInterface

public class StructureTryCatch extends AbstractClient

入力アイテムのAfterを順次実行し、エラー発生時には該当エラー処理を行う

入力引数に指定された アイテムのAfterを順次実行します。
アイテムのAfter 処理の戻り値(OK,ERROR etc..) は、 以下の仕様に基づき変換され このロジッククラスの戻り値として返します。

入力アイテムAfterの戻り値次の入力アイテム実行有無このロジッククラスの戻り値
OKOK
ERROR×ERROR
STOP×STOP
CANCEL×CANCEL
SKIPOK
SKIP_ALLOK
FRAME_CLOSE×SKIP_ALL
FRAME_QUIT×SKIP_ALL
SYSTEM_EXIT×SKIP_ALL
SYSTEM_QUIT×SKIP_ALL

出力引数に エラー処理用アイテムが設定されていた場合には、エラーフラグに値が入った時点で エラーの処理を実行し処理を中断します。
エラー処理を明示的に行いたい場合には、入力引数の1つ目に エラーフラグのアイテム、2つ目以降にエラー処理実行アイテム を設定します。
エラーの判定は、エラーフラグのアイテムが空("")でない場合には エラーフラグの値(必ず数値であること)の番号を 行番号として、エラー処理アイテムを決定します。
つまり、エラーフラグ の 値 は、エラー種類を示す事になります。

例えば、出力引数の設定が

  1. エラーフラグ用アイテム
  2. エラー処理アイテム タイプA
  3. エラー処理アイテム タイプB
  4. エラー処理アイテム タイプC
と設定されている場合、エラーフラグ用アイテムの値が 1の場合には「タイプA」が、2の場合には 「タイプB」が 実行されます。

例えば、

入力引数出力引数
処理Aエラーフラグ
処理Bエラー処理1
処理Cエラー処理2
と設定されている場合、
 Try {
    処理A
    処理B
    処理C
  }catch(エラーフラグ=1){
    エラー処理1
  }catch(エラーフラグ=2){
    エラー処理2
  }
     
として処理されます。


[I/O RECORD]

InputRecord OutputRecord
  1. Afterに処理を記述したアイテム(複数)
  1. エラーフラグ用アイテム(省略可)
  2. Afterにエラー処理を記述したアイテム(複数・省略可)

[RULE PARAMETER]

Parameter
バージョン:
1.0
  • フィールド詳細

    • errorFlgItem

      jp.ne.mki.wedge.run.client.data.Item errorFlgItem
  • コンストラクタの詳細

    • StructureTryCatch

      public StructureTryCatch()
  • メソッドの詳細

    • getIOParameter

      public int getIOParameter() throws Throwable
      出力アイテムに設定があれば、エラー処理があると認識する 出力引数(0)のエラーフラグはデータクリアされます。 IOパラメータ取得。execute の前に実行される。
      戻り値:
       int int OK=処理続行、ERROR=異常終了、CANCEL=処理を中断(正常終了)
      例外:
      Throwable
    • execute

      public int execute() throws Throwable
      出力アイテムのAfter処理を順次実行する 各Afterの戻り値が OK 出ない場合には処理中断し実行リストに処理を戻す。 但し、SKIP or SKIP_ALL の場合には OK とみなし処理続行する。
      戻り値:
       int BusinessRuleの戻り値を参照
      例外:
      Throwable
    • loopInItemSub

      protected int loopInItemSub(jp.ne.mki.wedge.run.client.data.Item inItem, int index)
      出力アイテムのAfterを実行
      オーバーライド:
      loopInItemSub クラス内 AbstractClient
    • executeErrorExecution

      protected int executeErrorExecution()
      エラー処理を実行 エラーフラグの数値により入力アイテムの何行目を実行するか判断
      戻り値:
    • getExecuteErrorItem

      protected jp.ne.mki.wedge.run.client.data.Item getExecuteErrorItem(int errorNo)
      エラー発生時、エラー処理を行うためのアイテムを取得
      パラメータ:
      errorNo - エラーフラグの値
      戻り値:
    • isErrorOcuured

      protected boolean isErrorOcuured()
      エラー処理を行うかどうかの判断 入力アイテムが設定あり かつ 値が空("")で無い場合 エラーとみなす
      戻り値:
    • changeReturn

      protected int changeReturn(int result)
      入力アイテムのAfterの戻り値を、このロジッククラスの戻り値に変換
      パラメータ:
      result -
      戻り値:
    • exit

      public void exit() throws Throwable
      終了処理。保持していた変数などを開放する処理を記述します。
      execute の後に実行されます。
      正常終了・異常終了などに関わらず必ず実行されます。
      例外:
      Throwable