2014-04-10 120 views
-1

嗯,我圍繞我的返回語句在try catch塊中,所以我可以確保輸入的文本是字符串,因爲該方法需要字符串返回,但是我仍然得到一個錯誤當它在那裏時它需要一個return語句!爲什麼它仍然提示我缺少返回語句

public String getBatchName(){ 
    try { 
     return textField1.getText(); 
    } catch(InputMismatchException i){ 
     JOptionPane.showMessageDialog(
       null, "You have entered illegal characters for the batch name!" 
     ); 
    } 
} 

新代碼:

public static String getBatchName(){ 
    try { 
     return textField1.getText(); 
    } catch(InputMismatchException i){ 
     JOptionPane.showMessageDialog(
       null, "You have entered illegal characters for the batch name!", "Error", JOptionPane.ERROR_MESSAGE 
     ); 
    } 
    return textField1.getText(); 
} 
+1

如果getText()中出現異常,它會返回什麼? –

回答

2

如果一個異常被捕獲你沒有任何回報。在catch塊之後包含另一個return語句,以處理髮生異常並且其他return從未成功執行的情況。

+1

...或者只是不要捕捉異常,並讓它傳播開來。 –

+0

@rgettman我更新了我的第一篇文章,然後測試後輸出這個代碼函數嗎? – Boolena

+0

@ Boolena:當然。如果到達最後一個返回語句將總是拋出一個'InputMismatchException',但是你的代碼是有效的並且將被編譯。 – Keppil

0

你將永遠不會得到任何異常,同時呼籲JTextField#getText()

textField1.getText(); 

因此沒有交給任何異常的點。

相關問題