JavaRush /Java блог /Архив info.javarush /Вопрос про исключения
Wrell
40 уровень

Вопрос про исключения

Статья из группы Архив info.javarush
Здравствуйте. Нашел на Интуите такой код: import java.io.*; public class Test { public Test() { } public static void main(String[] args) { Test test = new Test(); try { test.doFileInput("bogus.file"); } catch (IOException ex) { System.out.println("Second exception handle stack trace"); ex.printStackTrace(); } } private String doFileInput(String fileName) throws FileNotFoundException,IOException { String retStr = ""; java.io.FileInputStream fis = null; try { fis = new java.io.FileInputStream(fileName); } catch (FileNotFoundException ex) { System.out.println("First exception handle stack trace"); ex.printStackTrace(); throw ex; } return retStr; } } Ожидается, что вывод будет таким и в дебагере всё так и работает. First exception handle stack trace java.io.FileNotFoundException: bogus.file (Не удается найти указанный файл) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:146) at java.io.FileInputStream.(FileInputStream.java:101) at com.javarush.Test.doFileInput(Test.java:25) at com.javarush.Test.main(Test.java:11) Second exception handle stack trace java.io.FileNotFoundException: bogus.file (Не удается найти указанный файл) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:146) at java.io.FileInputStream.(FileInputStream.java:101) at com.javarush.Test.doFileInput(Test.java:25) at com.javarush.Test.main(Test.java:11) Но когда просто запускаю программу, печатает что попало, например выводит сообщения в стек-трейсе, вот так: java.io.FileNotFoundException: bogus.file (Не удается найти указанный файл) First exception handle stack trace at java.io.FileInputStream.open(Native Method) Second exception handle stack trace at java.io.FileInputStream.(FileInputStream.java:146) at java.io.FileInputStream.(FileInputStream.java:101) at com.javarush.Test.doFileInput(Test.java:25) at com.javarush.Test.main(Test.java:11) java.io.FileNotFoundException: bogus.file (Не удается найти указанный файл) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.(FileInputStream.java:146) at java.io.FileInputStream.(FileInputStream.java:101) at com.javarush.Test.doFileInput(Test.java:25) at com.javarush.Test.main(Test.java:11) Вопрос: кто-нибудь знает, почему так происходит и как это исправить?
Комментарии (6)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
blacky Уровень 23
7 июня 2016
После каждой записи на консоль, т.е. System.out.println(), делай System.out.flush()
AndreGold Уровень 28
7 июня 2016
у вас в корне проекта есть файл bogus с расширением .file?

Нет? Я так и думал.

Ну тогда создайте, и напишите, что произошло?