JavaRush /Blog Java /Random-MS /Gelung untuk cuba tangkap
dimaMJ
Tahap
Craiova

Gelung untuk cuba tangkap

Diterbitkan dalam kumpulan
Program ini mudah, pengguna memasukkan nama fail, jika fail sedemikian wujud, ia dibaca, dan lain-lain, jika tidak, maka pengecualian akan dicetuskan dan pengguna mesti memasukkan nama fail sekali lagi, dan seterusnya sehingga nama fail betul. Berikut ialah kodnya: 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; } } Apabila memulakan program, apabila saya memasukkan nama yang salah, semuanya berfungsi, apabila saya memasukkan yang betul, ia membuang Exception dalam thread "utama" java.lang.NullPointerException, iaitu, atas sebab tertentu ia mengembalikan null , apa yang saya buat salah, mungkin mata saya berkabus atau ada yang salah saya faham, sila beritahu saya) Saya benar-benar ingin memikirkan cara membuat gelung cuba-tangkap dengan betul. Saya mencubanya tanpa kaedah yang berasingan, hanya menggunakan sementara, tiada yang baik keluar sama ada)
Dan adakah saya menyatakan jenis nilai pulangan dengan betul?
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION