Cześć. Jestem na 1 roku, próbuję się douczać Javy samodzielnie przy pomocy książek. Mam takie pytanie co do użycia słowa kluczowero return w try-catch. Próbuję otwierać plik,
int i;
FileInputStream fileInputStream;
if (args.length != 1){
System.out.println("Sposób użycia: ShowFile nazwa-pliku");
return;
}
//otwarcie pliku:
try {
fileInputStream = new FileInputStream(args[0]);
} catch (FileNotFoundException e) {
System.out.println("Nie mozna otworzyć pliku");
e.printStackTrace();
return; // O TO MI CHODZI
}
I jest wszystko OK. Jednak jeżeli usunę to ostatnie return, to następna instrukcja rzuca mi błąd, że fileInputStream nie zostało nigdzie zainicjowane:
try {
do {
i = fileInputStream.read(); // tutaj się wywala
if (i != -1)
System.out.println((char) i);
} while (i != -1);
} catch (IOException e) {
System.out.println("Błąd odczytu pliku");
e.printStackTrace();
}
W związku z tym pytania:
- Dlaczego tak się dzieje?
- Czy są inne sytuacje, kiedy używa się return bez zwracanej wartości?