2014-12-20 53 views
0

我正在寫一個學生的程序2年。我只是好奇,當catch語句將出現。我嘗試了一切,使我的程序輸出catch塊內的語句,但我失敗了。有任何想法嗎?當catch語句會出現時

try{ 
    System.out.print("Enter a sentence: "); 
     String sentence = dataIn.readLine(); 
     String res = sentence.replaceAll(" ", ""); 
    System.out.println(res); 
    }catch(IOException e){ 
    e.printStackTrace(); 
    System.err.println(e); 
    } 
} 

回答

1

你可以throw new IOException

try { 
    throw new IOException("Like this"); 
} catch (IOException e) { 
    e.printStackTrace(); 
    System.err.println(e); 
} 

輸出是

java.io.IOException: Like this 
    at com.stackoverflow.Main.main(Main.java:8) 
java.io.IOException: Like this 
+0

是否有可能在沒有「拋出新的異常」的情況下顯示語句? – Yodism

+2

@Patrick當然,但必須拋出一個異常。如果你想要它總是運行,那麼你需要一個'finally'塊。 –

+0

哦,謝謝你,先生,我明白了。 finally塊總是在try塊退出-docs.oracle時執行。謝謝你的啓發。 – Yodism

1

時,它裏面的代碼拋出它時被觸發的IOException

您可以強制與這樣的事情很簡單,發生:

try{ 
    System.out.print("Enter a sentence: "); 
    String sentence = dataIn.readLine(); 
    String res = sentence.replaceAll(" ", ""); 
    System.out.println(res); 
    throw new IOException("Testing"); 
} catch(IOException e) { 
    e.printStackTrace(); 
    System.err.println(e); 
} 

無論你dataIn對象很可能也扔一個,例如,如果它正在讀取的流給出了一個錯誤

+0

將依次需要什麼樣的輸入觸發catch塊? – Yodism

+2

可能不是關於輸入,它是來自 – Gagravarr

+0

的流/網絡/文件/計算機等等。好吧,先生,現在我很清楚異常處理是如何工作的。謝謝。 – Yodism

相關問題