2017-09-25 4 views
2

これは具体的かつ基本的な質問です。Java:値の処理が高すぎます - ベストプラクティスですか?

私はコンフィギュレーションファイルから値を読み取っていますが、それはいくつかのX以上でなければなりません;正しくプログラムを実行できるようになりました。

値がXよりも低い場合には...

  1. は、その場合に例外をスローするための正しい練習ですか?
  2. はいの場合 - あらかじめ定義されている例外(どれを使用するべきですか)を作成する必要がありますか、独自の例外クラスを作成する必要がありますか?

ありがとうございます。

+0

1.プログラムの残りの部分に対する批判であれば、それ以外はそうではない(それでもなおユーザに知らせる)2.それがどれほど重要であるかに依存し、 – XtremeBaumer

+0

'if(input> x)throw new exception(" xより大きい入力 ");'入力を読み込みます。このようなもの? –

+1

これは、特定の状況に完全に依存する設計上の決定です。あなたはデザイナーとして、そのようなエラーがどれほど深刻であるか、そしてそこから回復する良い方法があるかどうかを判断する必要があります。 –

答えて

1

この場合、例外をスローするのは正しい方法ですか?

例外をスローすることは有効です。別の有効な選択肢は、適切なデフォルト値を使用し、ユーザーに何が起こったかを説明する警告を記録することです。

選択は、値がどのように設定されているかによって異なります。これについてケースバイケースの決定を下す必要があります。

私は自分自身の例外クラスを作成する必要がありますか?また、他の例外クラスから拡張する必要がありますか?

例外をスローしてデフォルト値にする場合は、Exceptionから派生したカスタム例外をスローしてチェックします。これにより、呼び出しコードに例外を処理するコードが存在することが保証されます。

0

1.)はい
2.)独自のものを作成し、読み込み値の意味に従って名前を付けます。 単純にIllegalArgumentExceptionまたはNumberFormatExceptionを拡張できます。

より正確にすると、アプリケーションのコードと動作がより明確になります。

あなたが話している価値がアプリケーションの中核/優れた意味を持つ場合、私はより精度の高いNumberFormatExceptionを拡張します。識別可能な意味を持たない単なる値よりも多くの値がある場合は、それを拡張するのではなく単にNumberFormatExceptionを使用することもできます。

+0

しかし、なぜですか?これはちょうどあなたの意見です – AxelH

+0

彼は "正しい練習"について尋ねます。これは正しい方法です。それについて論じる必要はありません。それは素晴らしく清潔で、事件を正確に識別します。 – ospf

+0

@ospf正しい練習として一般に認められているかどうかは関係ありませんが、それが正しい理由を説明することはまだ価値があります... –

関連する問題