0

次の例では、Eclipse は ' throws EmptyStackException' を追加するように求めません。

public E pop() {
  if (stack.isEmpty()) {
    throw new EmptyStackException();
  }
  ...
}

ただし、次の例では「throws Exception」が必要です

public E pop() throws Exception {
  if(stack.isEmpty()) {
    throw new Exception();
...
}

スローを追加する必要があるかどうかについて、特定のルールはありますか?

4

3 に答える 3

2

メソッドシグネチャで sを宣言/処理する必要はありませんがRuntimeException、メソッドがそれをスローし、メソッド内で処理されない場合は、Checked Exception を宣言/処理する必要があります。

あなたの場合はEmptyStackExceptionですRuntimeExceptionので、メソッドでそれを処理/宣言する必要はありませんがException、チェックされているので、それを処理するか、メソッドシグネチャで宣言する必要があります

于 2014-03-16T17:51:10.307 に答える