Bird
Raised Fist0
C++programming~5 mins

Exception handling flow in C++ - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of try block in exception handling?
The try block contains code that might throw an exception. It is where you test code that could cause errors.
Click to reveal answer
beginner
What happens when an exception is thrown inside a try block?
When an exception is thrown, the program stops executing the try block and looks for a matching catch block to handle the error.
Click to reveal answer
beginner
What is the role of a catch block?
A catch block handles exceptions thrown in the try block. It defines how to respond to specific types of errors.
Click to reveal answer
beginner
What does the throw keyword do?
The throw keyword signals that an error or exception has occurred. It sends an exception object to be caught by a catch block.
Click to reveal answer
intermediate
What is the flow of control when an exception is not caught?
If no matching catch block is found, the program calls std::terminate() and usually ends abruptly.
Click to reveal answer
What keyword starts a block of code that might throw an exception?
Atry
Bcatch
Cthrow
Dfinally
Which block handles the exception after it is thrown?
Atry
Bthrow
Cif
Dcatch
What happens if an exception is thrown but no catch block matches it?
AProgram continues normally
BProgram calls std::terminate() and ends
CException is ignored
DException is automatically handled
Which keyword is used to signal an error in C++ exception handling?
Acatch
Berror
Cthrow
Dtry
Can multiple catch blocks follow a single try block?
AYes, to handle different exception types
BNo, only one catch block is allowed
COnly if they catch the same exception type
DOnly if they are nested
Explain the flow of control in C++ exception handling from try to catch.
Think about what happens when an error occurs inside the try block.
You got /5 concepts.
    What happens if an exception is thrown but no catch block matches it? Describe the program behavior.
    Consider what the system does when it cannot handle an error.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using try and catch blocks in C++?
      easy
      A. To speed up the program execution
      B. To handle errors and keep the program running smoothly
      C. To declare variables
      D. To create loops

      Solution

      1. Step 1: Understand the role of try block

        The try block contains code that might cause errors or exceptions during execution.
      2. Step 2: Understand the role of catch block

        The catch block handles those errors so the program does not crash and can continue running.
      3. Final Answer:

        To handle errors and keep the program running smoothly -> Option B
      4. Quick Check:

        Exception handling = handle errors safely [OK]
      Hint: Try-catch blocks catch errors to avoid crashes [OK]
      Common Mistakes:
      • Thinking try-catch speeds up code
      • Confusing try-catch with loops
      • Using try-catch to declare variables
      2. Which of the following is the correct syntax to catch an exception of type int in C++?
      easy
      A. catch (int e) { /* handle error */ }
      B. catch int (e) { /* handle error */ }
      C. catch { int e; /* handle error */ }
      D. catch (e int) { /* handle error */ }

      Solution

      1. Step 1: Recall correct catch syntax

        The catch block must specify the exception type in parentheses followed by a variable name, like catch (int e).
      2. Step 2: Identify syntax errors in other options

        The other options contain syntax errors such as reversed type and variable order, incorrect keyword placement, or missing parentheses with improper declaration.
      3. Final Answer:

        catch (int e) { /* handle error */ } -> Option A
      4. Quick Check:

        Correct catch syntax = catch (type var) [OK]
      Hint: Catch syntax: catch (type variable) { } [OK]
      Common Mistakes:
      • Omitting parentheses in catch
      • Swapping type and variable order
      • Missing variable name in catch
      3. What will be the output of the following code?
      try {
        throw 5;
        std::cout << "No Exception" << std::endl;
      } catch (int e) {
        std::cout << "Caught exception: " << e << std::endl;
      }
      medium
      A. Program crashes
      B. No Exception
      C. Caught exception: 5
      D. No output

      Solution

      1. Step 1: Understand the throw statement

        The code throws an integer exception with value 5, so control jumps to the catch block immediately.
      2. Step 2: Identify which catch block runs

        The catch block for int e catches the exception and prints the message with the value 5.
      3. Final Answer:

        Caught exception: 5 -> Option C
      4. Quick Check:

        Throw 5 caught by catch(int) = output message [OK]
      Hint: Throw jumps to matching catch, skipping rest of try [OK]
      Common Mistakes:
      • Expecting code after throw to run
      • Thinking program crashes without catch
      • Ignoring exception value in output
      4. Identify the error in this code snippet:
      try {
        int x = 10 / 0;
      } catch (double e) {
        std::cout << "Caught double exception" << std::endl;
      }
      medium
      A. Division by zero causes a runtime error but no exception is thrown
      B. Catch block should catch int, not double
      C. Try block syntax is incorrect
      D. No error, code runs fine

      Solution

      1. Step 1: Analyze division by zero in C++

        Integer division by zero causes undefined behavior or runtime error but does not throw a C++ exception automatically.
      2. Step 2: Check catch block type

        The catch block expects a double exception, but no exception is thrown, so it never runs.
      3. Final Answer:

        Division by zero causes a runtime error but no exception is thrown -> Option A
      4. Quick Check:

        Integer divide by zero = runtime error, no catch [OK]
      Hint: Integer divide by zero crashes, no catch thrown [OK]
      Common Mistakes:
      • Assuming division by zero throws exception
      • Mismatching catch type with thrown exception
      • Thinking try block syntax is wrong
      5. Given this code, what will be the output?
      try {
        try {
          throw std::string("Error");
        } catch (int e) {
          std::cout << "Caught int" << std::endl;
        }
      } catch (std::string &e) {
        std::cout << "Caught string: " << e << std::endl;
      }
      hard
      A. Caught int
      B. Program crashes
      C. No output
      D. Caught string: Error

      Solution

      1. Step 1: Trace inner try-catch

        The inner try throws a std::string exception. The inner catch expects int, so it does not catch this exception.
      2. Step 2: Trace outer catch block

        The exception propagates to the outer catch, which catches std::string &e and prints the message.
      3. Final Answer:

        Caught string: Error -> Option D
      4. Quick Check:

        Inner catch mismatch, outer catch handles string [OK]
      Hint: Exception bubbles up until matching catch found [OK]
      Common Mistakes:
      • Assuming inner catch catches all exceptions
      • Ignoring exception propagation
      • Expecting program crash on uncaught inner exception
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard