2016-09-28 4 views
0

JARファイルを呼び出すシェルスクリプトがあります。いずれかのJAVAクラスで例外が発生した場合、JARはSystem.exit()を使用してシェルスクリプトにゼロ以外の値を返す必要があります。私はこれに2つのアプローチがあります。他のJavaクラスで例外が発生したかどうかは、メインJavaクラスがどのように知るのですか?

  1. メインクラスのグローバル変数を初期値0として宣言してください。すべてのJAVAクラスのすべてのcatchブロックをインクリメントします。完了すると、グローバル変数がゼロより大きい場合、メインクラスはSystem.exit(1)を呼び出します。
  2. すべての例外をメインクラスとメインクラスのcatchブロックに投げ捨て続け、System.exit(1)を呼び出します。これには多くの変更が必要です。

他の方法がある場合は教えてください。

答えて

1

オプション2が最適です。グローバル変数を使用するべきではありません。これは、悪い設計の指標です。コードの同じビットを別の場所の束に貼り付けることも、悪い設計です。適切に投げて例外をキャッチすることは、常にこれを処理する正しい方法です。

+0

ありがとうございます@ nhouser9。グローバル変数を使用する際に何が問題になるのでしょうか? –

+0

@SatejKoli短い質問のためにこの質問を参照してください:http://programmers.stackexchange.com/questions/148108/why-is-global-state-so-evil私はあなたがトピック。この回答が役に立ったらアップアップして受け入れることを忘れないでください。]] – nhouser9

+0

ありがとう@ nhouser9。あなたが投稿したリンクはすべてを詳細に説明しています。しかし、私のプログラムが考慮される限り、グローバル変数を使用することは無害です。私のプログラムについて具体的にどう思いますか? –

関連する問題