0
    try {
        if (x.length == Styles.size()) {

        }
        else{
             throws InputMismatchException ;
        }
    } finally {
        OutputFileScanner.close();
    }

上記のコードを含むメソッドでコンパイル エラーが発生しました。else ブロックで InputMismatchException をスローする方法はありますか?

4

5 に答える 5

4

new次のキーワードを使用する必要があります。

throw new InputMismatchException();
于 2012-11-27T02:33:13.627 に答える
1

「スロー」宣言はメソッド本体には入りません。単純に例外をスローする場合は、次のように宣言します。

    public void method() throws InputMismatchException{

    if(...) {...
     OutputFileScanner.close();
   }
    else{
      OutputFileScanner.close();
     throw new InputMismatchException("Uh oh");
      }
    }

ここで try ステートメントを使用する必要はありません。method() を呼び出すときは、次を使用します。

try{
  method();
} catch (InputMismatchException ime){
   //do what you want
 }

それが役立つことを願っています!

于 2012-11-27T02:32:22.487 に答える
0

例外をスローすると、try-catch-finally する必要はありません。例外をキャッチするときは、try catch finally が必要です。以下を試してください--

if (x.length == Styles.size()) {

    }
    else{
         throw new InputMismatchException() ;
    }
于 2012-11-27T02:31:07.177 に答える
0

例外のインスタンスを作成してからスローします。throws実際に例外をスローするのではなく、メソッド宣言の一部として使用されます。

    if (x.length == Styles.size()) {

    }
    else{
         throw new InputMismatchException();
    }
于 2012-11-27T02:33:02.427 に答える
0

例外をスローするメソッドを宣言します。

OutputStream.close()スローするのでIOException、それもスローする必要があります。

void myMethod() throws InputMismatchException, IOException {
    // your code, except 
    throw new InputMismatchException();
}
于 2012-11-27T02:29:54.320 に答える