java捕获异常

时间:2012-11-27 02:27:51

标签: java

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

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

我在包含上面代码的方法中得到编译错误,有没有办法在else块中抛出InputMismatchException?

5 个答案:

答案 0 :(得分:4)

您需要使用new关键字:

throw new InputMismatchException();

答案 1 :(得分:1)

“throws”声明不会进入方法体。如果您想简单地抛出异常,请按如下方式声明:

    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
 }

希望有所帮助!

答案 2 :(得分:0)

声明它所居住的方法以抛出异常。

因为OutputStream.close()抛出IOException,你也需要扔掉它:

void myMethod() throws InputMismatchException, IOException {
    // your code, except 
    throw new InputMismatchException();
}

答案 3 :(得分:0)

当你抛出异常时,就没有必要尝试抓住它了。当你遇到异常时,最后尝试捕获是必要的。尝试以下方法 -

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

    }
    else{
         throw new InputMismatchException() ;
    }

答案 4 :(得分:0)

您想要创建异常的实例然后抛出它。 throws用作方法声明的一部分,而不是实际抛出异常。

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

    }
    else{
         throw new InputMismatchException();
    }