JavaRush /จาวาบล็อก /Random-TH /ห่วงสำหรับลองจับ
dimaMJ
ระดับ
Craiova

ห่วงสำหรับลองจับ

เผยแพร่ในกลุ่ม
โปรแกรมนั้นเรียบง่าย ผู้ใช้กรอกชื่อไฟล์ หากมีไฟล์ดังกล่าว ถูกอ่าน ฯลฯ หากไม่เป็นเช่นนั้น ระบบจะเรียกใช้ข้อยกเว้น และผู้ใช้จะต้องป้อนชื่อไฟล์อีกครั้ง และต่อๆ ไปจนกระทั่งได้ชื่อไฟล์ ถูกต้อง. นี่คือรหัส: 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 นั่นคือด้วยเหตุผลบางอย่างมันส่งคืนค่าว่าง ฉันกำลังทำอะไรผิด บางทีตาของฉันมัวหรือมีบางอย่างผิดปกติ ฉันเข้าใจ โปรดบอกฉัน) ฉันต้องการทราบวิธีสร้าง try-catch loop อย่างถูกต้อง ฉันลองใช้โดยไม่มีวิธีแยกต่างหาก แค่ใช้ while ก็ไม่มีอะไรดีออกมาเช่นกัน)
และฉันระบุประเภทของค่าส่งคืนอย่างถูกต้องหรือไม่
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION