Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Agile forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Is the sequence of output correct?

 
Balaguru Janarthanan
Ranch Hand
Posts: 37
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
import java.io.*;
public class Mine {
public static void main(String argv[]){
Mine m=new Mine();
System.out.println(m.amethod());
}
public int amethod() {
try {
FileInputStream dis=new FileInputStream("Hello.txt");
}
catch (FileNotFoundException fne) {
System.out.println("No such file found");
return -1;
}
catch(IOException ioe) {
}
finally{
System.out.println("Doing finally");
}
return 0;
}
}
prints: Nosuchfilefound, doing finally, -1.
is it not like this: Nosuchfilefound,-1,doingfinally.
pls help.
 
Manfred Leonhardt
Ranch Hand
Posts: 1492
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Balaguru,
Yes the output order is correct. The finally part of a try block will always be executed before completing the block. The only way to avoid executing a finally block would be to call System.exit() method from within the try or catch blocks.
Manfred.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic