0

空になる可能性のあるスタックがあります。私はそれが空であることを確認したい、そしてそれがあれば私は投げたいStackUnderFlowException

if(myStack.empty()) {
   throw new StackUnderFlowException("Some error message");
}

質問:

  1. これは効率的ですか?フロー制御に例外を使用するつもりはないことはわかっています.スタックが空であることを明示的にチェックしているので、そうではないと思いますか?
  2. StackUnderFlowException現時点でこのエラーが発生するため、クラスをインポートするにはどうすればよいですか。

    タイプ PriceHolder のメソッド foo(String) が欠落しているタイプ StackUnderFlowException を参照しています

どうもありがとう。

4

2 に答える 2

1

概念的に言えば、発生すると予想されることにはフロー制御を使用し、発生してはならないことには例外を使用します。私が見たほとんどのライブラリ (標準の Java ライブラリを含む) では、存在しないコンテナ要素にアクセスしようとするとプログラミング エラーと見なされ、例外または同様のメカニズムを使用して通知されることがよくあります。

#2 については、StackUnderFlowException が含まれているパッケージを特定する必要があります。それについてサポートが必要な場合は、使用している StackUnderFlowException を指定してください。

于 2013-07-20T09:17:38.930 に答える
0

これは効率的ですか?

そうです。バグのあるコード以外では決して起こらないはずであり、正しく実行されないコードがどれほど効率的であるかを誰が気にしますか?

フロー制御に例外を使用するつもりはないことはわかっています。

それがどのような意味でも。このグノミックな発音の問題点は、例外フロー制御の一種であるということです。このビジネスで寄せられた意見にとらわれすぎないでください。それらの多くは一時的なものであり、さらに多くのものは価値がありません。この場合、例外をスローすることは完全に妥当です。この場合、帯域外の戻り値を使用するよりも優れており、帯域外の戻り値がない場合もあります。

スタックが空であることを明示的にチェックしているので、そうではないと思いますか?

この文の意味がわかりません。

StackUnderFlowException クラスをインポートする方法

StackUnderflowExceptionのクラス?JDKにはありません。あなたはそれを書かなければならないかもしれませんか?

于 2013-07-20T10:01:43.163 に答える