Здравствуйте. Нашел на Интуите такой код:
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)
Вопрос: кто-нибудь знает, почему так происходит и как это исправить?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Нет? Я так и думал.
Ну тогда создайте, и напишите, что произошло?