Bird
Raised Fist0
PHPprogramming~10 mins

Try-catch execution flow in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to catch exceptions.

PHP
<?php
try {
    // code that may throw an exception
} catch ([1] $e) {
    echo $e->getMessage();
}
?>
Drag options to blanks, or click blank then click option'
AError
BThrowable
CException
DErrorException
Attempts:
3 left
💡 Hint
Common Mistakes
Using a class that does not represent exceptions will cause a fatal error.
Forgetting to specify a class in the catch block.
2fill in blank
medium

Complete the code to throw an exception.

PHP
<?php
function checkAge($age) {
    if ($age < 18) {
        throw new [1]("Age must be at least 18.");
    }
    return true;
}
?>
Drag options to blanks, or click blank then click option'
AException
BErrorException
CThrowable
DError
Attempts:
3 left
💡 Hint
Common Mistakes
Using a class that is not throwable will cause an error.
Forgetting to use the 'new' keyword when throwing an exception.
3fill in blank
hard

Fix the error in the catch block to properly catch exceptions.

PHP
<?php
try {
    throw new Exception("Error occurred.");
} catch ([1]) {
    echo "Caught an exception.";
}
?>
Drag options to blanks, or click blank then click option'
AError $e
BException $e
CThrowable $e
DException
Attempts:
3 left
💡 Hint
Common Mistakes
Omitting the variable name after the exception class.
Using only the class name without a variable.
4fill in blank
hard

Fill both blanks to create a try-catch block that catches exceptions and prints the message.

PHP
<?php
try {
    [1] new Exception("Something went wrong.");
} catch ([2] $e) {
    echo $e->getMessage();
}
?>
Drag options to blanks, or click blank then click option'
Athrow
Bcatch
CException
DError
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'catch' instead of 'throw' to raise an exception.
Catching with the wrong class.
5fill in blank
hard

Fill all three blanks to create a try-catch-finally block that throws an exception, catches it, and executes finally.

PHP
<?php
try {
    [1] new Exception("Failed operation.");
} catch ([2] $e) {
    echo $e->getMessage();
} finally {
    [3] "Cleanup done.";
}
?>
Drag options to blanks, or click blank then click option'
Athrow
BException
Cecho
Dprint
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'print' instead of 'echo' in finally (both work but only one is correct here).
Missing the variable name in catch block.

Practice

(1/5)
1.

What is the main purpose of a try-catch block in PHP?

easy
A. To handle errors without stopping the program
B. To speed up the execution of the program
C. To create new variables automatically
D. To print output to the screen

Solution

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

    The try block contains code that might cause an error, and the catch block handles that error.
  2. Step 2: Identify the purpose

    This structure prevents the program from stopping abruptly by managing errors gracefully.
  3. Final Answer:

    To handle errors without stopping the program -> Option A
  4. Quick Check:

    Try-catch = error handling [OK]
Hint: Try-catch is for error handling, not speed or output [OK]
Common Mistakes:
  • Thinking try-catch speeds up code
  • Confusing try-catch with output commands
  • Believing try-catch creates variables
2.

Which of the following is the correct syntax to start a try-catch block in PHP?

?
easy
A. try() { /* code */ } catch() { /* handle */ }
B. try: /* code */ catch: /* handle */
C. try { /* code */ } catch (Exception $e) { /* handle */ }
D. try[] { /* code */ } catch[] { /* handle */ }

Solution

  1. Step 1: Recall PHP try-catch syntax

    PHP uses curly braces {} to define blocks after try and catch keywords.
  2. Step 2: Match correct syntax

    try { /* code */ } catch (Exception $e) { /* handle */ } correctly uses try { } and catch (Exception $e) { } syntax.
  3. Final Answer:

    try { /* code */ } catch (Exception $e) { /* handle */ } -> Option C
  4. Quick Check:

    Curly braces with try and catch = correct syntax [OK]
Hint: Remember try and catch use curly braces in PHP [OK]
Common Mistakes:
  • Using colons instead of braces
  • Adding parentheses after try or catch
  • Using square brackets instead of braces
3.

What will be the output of this PHP code?

try {
    echo "Start\n";
    throw new Exception("Error happened");
    echo "End\n";
} catch (Exception $e) {
    echo "Caught: " . $e->getMessage() . "\n";
}
echo "Done\n";
medium
A. Start Caught: Error happened Done
B. Start Done
C. Caught: Error happened Done
D. Start End Caught: Error happened Done

Solution

  1. Step 1: Trace code inside try block

    "Start" is printed, then an Exception is thrown, so the next echo "End" is skipped.
  2. Step 2: Catch block runs and prints message

    The catch block prints "Caught: Error happened" and then after try-catch, "Done" is printed.
  3. Final Answer:

    Start Caught: Error happened Done -> Option A
  4. Quick Check:

    Exception stops try, catch prints message, then Done [OK]
Hint: Exception skips rest of try, catch runs, then code continues [OK]
Common Mistakes:
  • Thinking code after throw runs
  • Missing catch block output
  • Assuming program stops after exception
4.

Find the error in this PHP code snippet:

try {
    echo "Hello";
} catch {
    echo "Error caught";
}
medium
A. try block cannot have echo statements
B. Missing exception variable in catch parentheses
C. Missing semicolon after echo statements
D. catch block must come before try block

Solution

  1. Step 1: Check catch block syntax

    In PHP, catch must specify the exception type and variable, like catch (Exception $e).
  2. Step 2: Identify missing part

    The catch block here has no parentheses or variable, causing a syntax error.
  3. Final Answer:

    Missing exception variable in catch parentheses -> Option B
  4. Quick Check:

    Catch needs (Exception $e) [OK]
Hint: Catch always needs (Exception $e) or similar [OK]
Common Mistakes:
  • Omitting exception variable in catch
  • Thinking echo needs semicolon after last statement only
  • Believing catch can come before try
5.

Consider this PHP code:

function divide($a, $b) {
    try {
        if ($b == 0) {
            throw new Exception("Division by zero");
        }
        return $a / $b;
    } catch (Exception $e) {
        return $e->getMessage();
    }
}

echo divide(10, 2) . "\n";
echo divide(5, 0) . "\n";

What will be the output?

hard
A. Error Error
B. 5 0
C. Division by zero Division by zero
D. 5 Division by zero

Solution

  1. Step 1: Analyze divide(10, 2)

    Since 2 is not zero, division happens: 10 / 2 = 5 is returned.
  2. Step 2: Analyze divide(5, 0)

    Since 0 triggers exception, catch returns the message "Division by zero".
  3. Final Answer:

    5 Division by zero -> Option D
  4. Quick Check:

    Valid division returns number; zero divisor returns error message [OK]
Hint: Exception returns message; normal runs return result [OK]
Common Mistakes:
  • Expecting zero instead of error message
  • Thinking exception stops program without catch
  • Confusing return values inside try-catch
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