0

私は、異常な状態を持つ Java の小さなステート マシンを持っています。

問題はABORT...

タスクには、 と の 2 つの最終状態がSUCCESSFULありFAILEDます。

ただしABORT、タスクがキューにある間、実行される前、および実行中にタスクを実行すると便利な場合があります。

whileは最終状態ですが、 2 つ(または N) の失敗した状態ABORTEDは望ましくありません。

FAILEDそして、ABORTEDチェックする必要があります。のような他の失敗した状態も確認できTIMEOUTました。

失敗の一般的な原因があると思います...失敗した理由を確認したい場合、それはTimeoutException、である可能性があります。AbortedExceptionそれから私は原因を見ることができました。

それにもまだ満足していません。

何かご意見は?

4

1 に答える 1

1

あなたの問題を抽象的にしか理解していないので、このステートマシンに関する私の考えを以下に示します。

、、などFAILEDの原因を含むカテゴリである必要があると思います。プログラムまたは環境に何らかの欠陥があったことを示しているように見えるので好きではありませんが、それが伝わらないことのより良い対義語は思いつきません同じ意味。ABORTEDTIMEOUTSEGFAULTUNKNOWNFAILEDSUCCESSFUL

enumJava フレームワークの仕様に関心がある場合は、これらの状態を表す を問題なく簡単に作成できます。SUCCESSFUL または !SUCCESSFUL のみをチェックします。失敗したものはすべて、おそらくあるレベルで同様の処理に値するからです。

例外ルートを取ることもできますがAbortedException、特にそれが実際に例外的な状況でない場合は、. 予期されるコードは、可能であれば例外をトリガーしないようにします。

于 2013-09-29T23:10:08.730 に答える