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」。 –