try {
if (x.length == Styles.size()) {
}
else{
throws InputMismatchException ;
}
} finally {
OutputFileScanner.close();
}
我在包含上述代码的方法中得到编译错误,有没有办法在 else 块中抛出 InputMismatchException ?
try {
if (x.length == Styles.size()) {
}
else{
throws InputMismatchException ;
}
} finally {
OutputFileScanner.close();
}
我在包含上述代码的方法中得到编译错误,有没有办法在 else 块中抛出 InputMismatchException ?
您需要使用new
关键字:
throw new InputMismatchException();
“抛出”声明不会进入方法主体。如果您想简单地抛出异常,请将其声明如下:
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
}
希望有帮助!
声明它所在的方法以引发异常。
因为OutputStream.close()
throwsIOException
你也需要抛出它:
void myMethod() throws InputMismatchException, IOException {
// your code, except
throw new InputMismatchException();
}
当你抛出异常时,就不需要 try-catch-finally 了。当您捕获异常时,try catch finally 是必要的。尝试以下 -
if (x.length == Styles.size()) {
}
else{
throw new InputMismatchException() ;
}
你想创建一个异常的实例然后抛出它。throws
用作方法声明的一部分,而不是实际抛出异常。
if (x.length == Styles.size()) {
}
else{
throw new InputMismatchException();
}