Bird
Raised Fist0
Javaprogramming~5 mins

Finally block in Java - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is the purpose of a finally block in Java?
The finally block is used to execute important code such as cleanup actions, regardless of whether an exception was thrown or caught.
Click to reveal answer
beginner
When does the code inside a finally block run?
It runs after the try and catch blocks finish, no matter if an exception occurred or not.
Click to reveal answer
intermediate
Can a finally block run if there is a return statement in the try block?
Yes, the finally block still runs even if the try block has a return statement.
Click to reveal answer
advanced
What happens if an exception is thrown inside a finally block?
If an exception occurs in the finally block, it can override any exception thrown in the try or catch blocks.
Click to reveal answer
beginner
Is a finally block mandatory after a try block?
No, a finally block is optional. Every try block must be followed by at least one catch or finally block.
Click to reveal answer
What is guaranteed by the finally block in Java?
AIt always executes after try/catch blocks, even if an exception occurs.
BIt only executes if an exception is caught.
CIt executes before the try block.
DIt executes only if there is no exception.
If a return statement is in the try block, what happens to the finally block?
AThe finally block is skipped.
BThe finally block runs before returning.
CThe program crashes.
DThe finally block runs only if an exception occurs.
Can a finally block be used without a catch block?
AYes, finally can be used alone with try.
BNo, catch is required.
COnly if there is no exception.
DOnly in Java 8 and later.
What happens if an exception is thrown inside a finally block?
AIt is ignored.
BIt is caught automatically.
CIt causes the program to exit immediately.
DIt replaces any previous exception.
Which of these is NOT true about finally blocks?
AThey always execute unless the JVM exits.
BThey can be used to close resources.
CThey can prevent exceptions from propagating.
DThey run even if there is a return in try.
Explain the role of the finally block in Java exception handling.
Think about what code you want to run no matter what happens in try or catch.
You got /4 concepts.
    Describe what happens when an exception is thrown inside a finally block.
    Consider how exceptions in finally affect the original exception.
    You got /3 concepts.

      Practice

      (1/5)
      1.

      What is the main purpose of the finally block in Java exception handling?

      easy
      A. To catch exceptions thrown in the try block
      B. To throw new exceptions
      C. To execute code regardless of whether an exception occurs or not
      D. To declare exceptions that a method can throw

      Solution

      1. Step 1: Understand the role of try-catch-finally

        The try block contains code that might throw exceptions, catch handles them, and finally runs code after both.
      2. Step 2: Identify the purpose of finally

        The finally block always executes, whether an exception occurs or not, to finalize or clean up resources.
      3. Final Answer:

        To execute code regardless of whether an exception occurs or not -> Option C
      4. Quick Check:

        finally always runs = B [OK]
      Hint: finally always runs after try/catch blocks [OK]
      Common Mistakes:
      • Thinking finally only runs if an exception occurs
      • Confusing finally with catch block
      • Assuming finally can catch exceptions
      2.

      Which of the following is the correct syntax to add a finally block after a try-catch in Java?

      try {
          // code
      } catch(Exception e) {
          // handle
      } ??? {
          // cleanup
      }
      easy
      A. finally
      B. end
      C. finalize
      D. final

      Solution

      1. Step 1: Recall Java exception syntax

        Java uses the keyword finally to define the block that runs after try and catch.
      2. Step 2: Match the correct keyword

        Among options, only finally is the valid keyword for this block.
      3. Final Answer:

        finally -> Option A
      4. Quick Check:

        finally keyword syntax = D [OK]
      Hint: finally keyword always spelled 'finally' [OK]
      Common Mistakes:
      • Using 'final' instead of 'finally'
      • Confusing with 'finalize' method
      • Using invalid keywords like 'end'
      3.

      What will be the output of the following Java code?

      public class Test {
          public static void main(String[] args) {
              try {
                  System.out.print("Try-");
                  return;
              } catch(Exception e) {
                  System.out.print("Catch-");
              } finally {
                  System.out.print("Finally");
              }
              System.out.print("End");
          }
      }
      medium
      A. Try-Catch-End
      B. Try-Catch-Finally-End
      C. Try-End
      D. Try-Finally

      Solution

      1. Step 1: Analyze try block execution

        The try block prints "Try-" and then returns, so normally method would exit here.
      2. Step 2: Check finally block behavior with return

        Even with return, finally block executes, printing "Finally" before method exits.
      3. Step 3: Confirm code after finally

        Code after finally (System.out.print("End")) is unreachable due to return, so not executed.
      4. Final Answer:

        Try-Finally -> Option D
      5. Quick Check:

        finally runs even after return = C [OK]
      Hint: finally runs even if try returns early [OK]
      Common Mistakes:
      • Assuming code after finally runs after return
      • Thinking catch block runs without exception
      • Ignoring finally block execution
      4.

      Identify the error in the following code snippet:

      try {
          int a = 5 / 0;
      } finally {
          System.out.println("Cleanup");
      }
      medium
      A. No error, code is valid
      B. finally block cannot be used without catch
      C. Syntax error in try block
      D. Missing catch block for exception

      Solution

      1. Step 1: Check try-finally syntax rules

        Java allows try-finally without catch; try must be followed by catch or/and finally.
      2. Step 2: Analyze exception handling

        Division by zero throws ArithmeticException at runtime, finally executes cleanup, then exception propagates to caller.
      3. Step 3: Confirm no error

        The code compiles and runs validly (prints "Cleanup" before propagating exception); no syntax or structural error.
      4. Final Answer:

        No error, code is valid -> Option A
      5. Quick Check:

        try-finally valid without catch = D [OK]
      Hint: try-finally without catch is valid [OK]
      Common Mistakes:
      • Thinking finally requires catch block
      • Confusing runtime exception with syntax error
      • Believing finally alone causes compile error
      5.

      Consider this method:

      public static int test() {
          try {
              System.out.print("Try-");
              throw new RuntimeException();
          } catch(RuntimeException e) {
              System.out.print("Catch-");
              return 1;
          } finally {
              System.out.print("Finally-");
              return 2;
          }
      }

      What will System.out.print(test()); output?

      hard
      A. Try-Catch-Finally-1
      B. Try-Catch-Finally-2
      C. Try-Finally-2
      D. Catch-Finally-1

      Solution

      1. Step 1: Trace try block execution

        Try prints "Try-" then throws RuntimeException.
      2. Step 2: Catch block handles exception

        Catch prints "Catch-" and returns 1, but return is not final yet.
      3. Step 3: finally block overrides return

        Finally prints "Finally-" and returns 2, overriding previous return 1.
      4. Step 4: Combine printed output and return value

        Printed output is "Try-Catch-Finally-" and method returns 2, so print(test()) outputs "2" after prints.
      5. Final Answer:

        Try-Catch-Finally-2 -> Option B
      6. Quick Check:

        finally return overrides catch return = A [OK]
      Hint: finally return overrides other returns [OK]
      Common Mistakes:
      • Ignoring finally return overriding catch return
      • Assuming catch return is final
      • Missing printed output before return