try {
if (x.length == Styles.size()) {
}
else{
throws InputMismatchException ;
}
} finally {
OutputFileScanner.close();
}
我在包含上面代码的方法中得到编译错误,有没有办法在else块中抛出InputMismatchException?
答案 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();
}