JavaRush /Java Blog /Random-TW /循環嘗試捕獲
dimaMJ
等級 25
Craiova

循環嘗試捕獲

在 Random-TW 群組發布
程式很簡單,用戶輸入文件名,如果存在這樣的文件,則讀取等等,如果不存在,則觸發異常,用戶必須再次輸入文件名,以此類推,直到文件名是正確的。程式碼如下: public class Solution { public static void main(String[] args) throws Exception { InputStream inStream = filego(); OutputStream outStream = new PrintStream(System.out); while(inStream.available()>0) { int data = inStream.read(); outStream.write(data); } inStream.close(); outStream.close(); } public static InputStream filego() throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); String FileName = reader.readLine(); InputStream inStream = null ; try { inStream = new FileInputStream(FileName); } catch (Exception e) { System.out.println("Файл не найден, введите еще раз"); filego(); } return inStream; } } 啟動程式時,當我輸入錯誤的名稱時,一切正常,當我輸入正確的名稱時,它會在線程“main”java.lang.NullPointerException中拋出異常,也就是說,由於某種原因它返回null ,我做錯了什麼,也許我的眼睛被霧化了,或者我理解出了什麼問題,請告訴我)我真的想弄清楚如何正確地創建一個 try-catch 循環。我嘗試了沒有單獨的方法,只是使用 while,也沒有什麼好的結果)
並且我是否正確指定了返回值的類型?
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION