2016-11-18 5 views
1

HashMapを処理するメインクラスが、シリアライズ可能なインターフェイスを使用してファイルに保存する別の種類のクラスを持っているとします。このような場合に例外を使用する必要がありますか?

我々はマネージャーメインクラスを呼び出すことができますし、私は、ファイルに保存したいクラスはデータ呼び出すことができます。

さて、マネージャークラスは、ファイルにデータクラスのインスタンスを保存する方法(データのすべてのインスタンスマネージャークラスにHashMapのに格納されている)があります。インスタンスの名前がユーザーに入力されるため、存在しない可能性があります。

このような場合はどうすればよいですか?インスタンスが存在するかどうかをチェックし、そうでない場合はfalseを返すか、インスタンスが存在しない場合は例外をスローします。このような場合に例外を使用する必要がありますか?例外はプログラムのパフォーマンスに大きな影響を及ぼします(新しいオブジェクトを作成する必要があるたびに...)?

ありがとうございました。

+1

「HashMap」とは何ですか?キーに関連付けられた古い値を返します。キーがない場合はnullを返します。例外は必要ありません。 – EJP

+0

@EJPこのような状況では、オブジェクトへの参照を返す必要はありません。オブジェクトをメモリに保存したいので、関数はオブジェクトが成功して保存された場合はtrueを返し、存在しなかった場合やIOExceptionが発生した場合はfalseを返します。 –

+1

パフォーマンスについてはあまり考えすぎないほうがよいでしょうが、例外が適切な設計と実装の選択であるという条件について考えるべきでしょう。標準のAPI自体を見てください。彼らはあなたが記述したような例外を使いますか?等。 – pvg

答えて

1

このケースでは、プログラムのロジックが壊れた場合に例外をスローする必要があります。

インスタンスの存在が将来の操作に重要で重要な場合は、例外をスローする方がよいでしょう。それ以外の場合は、例外なしでbooleanを返します。

例外はプログラムのパフォーマンスに大きな影響を及ぼしますか?

いいえ、そうではありません。とにかく、それについて心配するべきではありません。
There are a good question and answers.

1

Exceptionsは、ディスクにファイルを書き込むような操作はできませんが、ディスクがいっぱいの場合は使用されます。

if分母の分母がゼロであるかどうかをチェックして、別の番号を入力するように指示する場合に使用します。

Exceptionsは、例外が発生したときにスタックトレースを作成して戻るため、ifより高価です。

エラーを避けるために何かできる場合は、ifを使用してください。できない場合は、exception

関連する問題