answersLogoWhite

0

What is finally statement in java?

Updated: 8/11/2023
User Avatar

Wiki User

12y ago

Best Answer

Although try and catch provide a great way to trap and handle exceptions, we are left with the problem of how to clean up if an exception occurs. Because execution transfers out of the try block as soon as an exception is thrown, we can't put our cleanup code at the bottom of the try block and expect it to be executed if an exception occurs.

Exception handlers are a poor place to clean up after the code in the try block because each handler then requires its own copy of the cleanup code. If, for example, you opened a database connection somewhere in the guarded region, each exception handler would have to release the connection. That would make it too easy to forget to do cleanup, and also lead to a lot of redundant code. If you forget to close the connection in cases where an exception occurs, you will be left with orphan connections which can eventually crash your database. To address this problem, Java offers the finally block.

A finally block encloses code that is always executed at some point after the try block, whether an exception was thrown or not. Even if there is a return statement in the try block, the finally block executes right after the return statement is encountered, and before the return executes!

This is the right place to close your files, release your db connections, and perform any other cleanup your code requires. If the try block executes with no exceptions, the finally block is executed immediately after the try block completes. If there was an exception thrown, the finally block executes immediately after the proper catch block completes. Let's look at another pseudocode example:

1: try {

2: // This is the first line of the "guarded region".

3: }

4: catch(DatabaseDownException) {

5: // Put code here that handles this exception

6: }

7: catch(SomeOtherException) {

8: // Put code here that handles this exception

9: }

10: finally {

11: // Put code here to release any resource we

12: // allocated in the try clause.

13: }

14:

15: // More code here

As before, execution starts at the first line of the try block, line 2. If there are no exceptions thrown in the try block, execution transfers to line 11, the first line of the finally block. On the other hand, if a SomeOtherException is thrown while the code in the try block is executing, execution transfers to the first line of that exception handler, line 8 in the catch clause. After all the code in the catch clause is executed, the program moves to line 11, the first line of the finally clause. To summarize - THE FINALLY BLOCK WILL EXECUTE ALWAYS. There is actually a catch here about the finally block executing always, but I will leave you to ponder over it for sometime. We will look at it a little later.

User Avatar

Wiki User

12y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

12y ago

finally creates a block of code that will be executed after a try/catch block has

completed and before the code following the try/catch block. The finally block will

execute whether or not an exception is thrown. If an exception is thrown, the finally

block will execute even if no catch statement matches the exception. Any time a

method is about to return to the caller from inside a try/catch block, via an uncaught

exception or an explicit return statement, the finally clause is also executed just before

the method returns. This can be useful for closing file handles and freeing up any other

resources that might have been allocated at the beginning of a method with the intent

of disposing of them before returning. The finally clause is optional. However, each try

statement requires at least one catch or a finally clause.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is finally statement in java?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What are control structures used in javascript?

The control structures used in java script are if-statement, for-loop, for-in loop, while loop,do-while loop, switch-statement, with-statement. try-catch-finally statements.


What is the return type of finally method in java?

The final and finally keywords have no impact on the return type of a method in Java.


What advantage does Java's break statement have over C's break statement?

They do the same thing, but only the former can be used in a Java program.


What does do in java?

You never write "do" seperately in Java. The only situation I can think of when you have to write "do" is in the "do while" statement. This is the syntax: do { statement(s) } while (expression);


How can you connet java with sql in java programming?

JDBC mean Java Database Connectivity. In java, using JDBC drivers, we can connect to database. Steps to connect to JDBC. 1) Load the driver, using Class.forName(DriverName); 2) Get the connection object, Connection con = Driver.getConnection(loaded driver name); 3) Create a SQL statement, Statement s = con.createStatement(); 4) Create Resultset object using the statement created above, ResultSet rs = s.executeQuery("sql statement"); Iterate the result set to get all the values from the database. Finally don't miss this 5) s.close(); 6) con.close() ;


What is the first name before of the Java Program?

The first name of the Java Programming was Oak. It then went by the game Green and finally Java from Java coffee.


What is the first name before of the Java Programming?

The first name of the Java Programming was Oak. It then went by the game Green and finally Java from Java coffee.


What are semicolons used in java?

to end a statement


What is case in java?

Case is used to label each branch in the switch statement in Java Program


What is a simple java code and explain what the code does?

int a;This simple Java statement declares an integer.


What is the use of switch statement in java?

In java, a switch statement is used to simplify a long list of 'if' statements. A switch statement takes the form of:switch (variableName){case condition1; command1;case condition2; command2;...}


What is the statement that every Java application must contain?

free download