try {
if (x.length == Styles.size()) {
}
else{
throws InputMismatchException ;
}
} finally {
OutputFileScanner.close();
}
我得到编译错误的方法包含上面的代码,有没有什么办法抛出InputMismatchException在else块?java捕捉异常
try {
if (x.length == Styles.size()) {
}
else{
throws InputMismatchException ;
}
} finally {
OutputFileScanner.close();
}
我得到编译错误的方法包含上面的代码,有没有什么办法抛出InputMismatchException在else块?java捕捉异常
声明它所在的方法抛出异常。
因为OutputStream.close()
抛出IOException
你需要把那太:
void myMethod() throws InputMismatchException, IOException {
// your code, except
throw new InputMismatchException();
}
当你抛出异常,那么就没有必要的try-catch-终于它。当你发现异常时,最后尝试捕捉是必要的。请尝试以下方法 -
if (x.length == Styles.size()) {
}
else{
throw new InputMismatchException() ;
}
他需要关闭他的扫描仪,以防止资源泄漏,所以暗示他不需要这个是完全不正确的。 – Brian
我在评论w.r.t.的异常处理。显然他需要释放资源。谢谢。 –
“throws”声明不会进入方法主体。如果您想简单地抛出异常,请将其声明如下:
public void method() throws InputMismatchException{
if(...) {...
OutputFileScanner.close();
}
else{
OutputFileScanner.close();
throw new InputMismatchException("Uh oh");
}
}
这里没有必要使用try语句。当您调用方法()时,您将使用以下内容:
try{
method();
} catch (InputMismatchException ime){
//do what you want
}
希望帮助!
你想创建一个异常的实例然后抛出它。 throws
被用作方法声明的一部分,而不是实际抛出异常。
if (x.length == Styles.size()) {
}
else{
throw new InputMismatchException();
}
这可能只是抱怨你没有声明自己的功能,可以投掷InputMismatchException时的。尝试在函数定义的末尾添加“throws InputMismatchException”。 –