JavaRush /Blog Java /Random-VI /Vòng lặp để bắt thử
dimaMJ
Mức độ
Craiova

Vòng lặp để bắt thử

Xuất bản trong nhóm
Chương trình rất đơn giản, người dùng nhập tên tệp, nếu tệp đó tồn tại thì nó sẽ được đọc, v.v., nếu không, thì một ngoại lệ sẽ được kích hoạt và người dùng phải nhập lại tên tệp, v.v. cho đến khi có tên tệp. đúng. Đây là đoạn mã: 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; } } Khi khởi động chương trình, khi tôi nhập sai tên, mọi thứ đều hoạt động, khi tôi nhập đúng, nó sẽ ném Ngoại lệ vào luồng "chính" java.lang.NullPointerException, tức là vì một lý do nào đó nó trả về null , tôi đang làm gì sai vậy, có thể mắt tôi bị mờ hoặc có gì đó không ổn, tôi hiểu, xin vui lòng cho tôi biết) Tôi thực sự muốn tìm ra cách thực hiện vòng lặp try-catch một cách chính xác. Tôi đã thử nó mà không có một phương pháp riêng biệt, chỉ sử dụng while, cũng không có gì tốt cả)
Và tôi có chỉ định chính xác loại giá trị trả về không?
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION