Throwing exceptions helps you handle errors in your program clearly and safely. It stops the program when something goes wrong and lets you fix or report the problem.
When a function gets an invalid input and cannot continue.
When a file you want to open does not exist.
When a database connection fails.
When a required resource is missing during program execution.
When you want to stop the program and show a clear error message.
Syntax
PHP
thrownew Exception("Error message here");
Use throw followed by new Exception with a message.
The message explains what went wrong.
Examples
This throws an exception with the message 'Invalid user ID'.
PHP
thrownew Exception("Invalid user ID");
This throws an exception when a file is missing.
PHP
thrownew Exception("File not found: config.txt");
Sample Program
This program defines a function that divides two numbers. It throws an exception if the second number is zero. The try block runs the function, and the catch block catches and shows the error message.
2. Which of the following is the correct syntax to throw an exception with the message "Error occurred" in PHP?
easy
A. throw new Exception("Error occurred");
B. throw Exception("Error occurred");
C. throw Exception new("Error occurred");
D. throw new Exception(Error occurred);
Solution
Step 1: Recall the syntax for throwing exceptions
In PHP, you must use throw new Exception("message") to throw an exception with a message.
Step 2: Check each option for syntax correctness
Only throw new Exception("Error occurred"); matches the correct syntax exactly. The other options either omit the new keyword, have the wrong order of keywords, or lack quotes around the message.
Final Answer:
throw new Exception("Error occurred"); -> Option A
Quick Check:
Correct syntax = throw new Exception(message) [OK]
Hint: Use 'throw new Exception("message")' exactly [OK]
Common Mistakes:
Omitting the 'new' keyword
Not quoting the message string
Wrong order of keywords
3. What will be the output of the following PHP code?
try {
throw new Exception("Oops!");
echo "No error";
} catch (Exception $e) {
echo $e->getMessage();
}
medium
A. No error
B. Fatal error
C. Exception thrown but no output
D. Oops!
Solution
Step 1: Analyze the try block
The code throws an exception with message "Oops!" before the echo statement, so "No error" is never printed.
Step 2: Understand the catch block behavior
The catch block catches the exception and echoes the message from the exception, which is "Oops!".
Final Answer:
Oops! -> Option D
Quick Check:
Exception message printed = Oops! [OK]
Hint: Exception stops try block; catch prints message [OK]
C. Method message() does not exist; should use getMessage().
D. Catch block syntax is incorrect.
Solution
Step 1: Check the catch block method call
The Exception class has a method getMessage() to get the error message, not message().
Step 2: Verify other syntax elements
The semicolon after throw is present, Exception class is built-in, and catch syntax is correct.
Final Answer:
Method message() does not exist; should use getMessage(). -> Option C
Quick Check:
Use getMessage() to get exception text [OK]
Hint: Use getMessage() method to read exception message [OK]
Common Mistakes:
Calling non-existent message() method
Missing semicolons (not in this case)
Incorrect catch syntax
5. You want to throw an exception only if a variable $age is less than 18. Which code correctly does this and catches the exception to print its message "Too young"?
hard
A. try {
if ($age < 18) {
throw new Exception("Too young");
}
} catch (Exception $e) {
echo $e->getMessage();
}
B. try {
if ($age < 18) {
throw new Exception("Too young");
}
} catch (Exception $e) {
echo "Too young";
}
C. try {
if ($age < 18) {
throw Exception("Too young");
}
} catch (Exception $e) {
echo $e->getMessage();
}
D. if ($age < 18) {
throw new Exception("Too young");
} catch (Exception $e) {
echo $e->getMessage();
}
Solution
Step 1: Identify correct try-catch structure
The exception must be thrown inside a try block to be caught properly. try {
if ($age < 18) {
throw new Exception("Too young");
}
} catch (Exception $e) {
echo $e->getMessage();
} correctly wraps the throw inside try.
Step 2: Check exception throwing syntax and catch output
try {
if ($age < 18) {
throw new Exception("Too young");
}
} catch (Exception $e) {
echo $e->getMessage();
} uses correct syntax throw new Exception("Too young") and prints the exception message with echo $e->getMessage();.
Final Answer:
try { if ($age < 18) { throw new Exception("Too young"); } } catch (Exception $e) { echo $e->getMessage(); } -> Option A
Quick Check:
Throw inside try, catch prints message [OK]
Hint: Always throw exceptions inside try blocks to catch them [OK]
Common Mistakes:
Throwing outside try block
Missing 'new' keyword when throwing
Printing hardcoded message instead of exception message
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.