PHP Exceptions

What is a PHP Exceptions case?

An error or strange thing that a PHP script does is described by an object called an exception.

Many PHP functions and classes throw exceptions.

Functions and classes made by the user can also throw exceptions.

Using exceptions is a good way to stop a function when it finds data it can’t use.

Throwing an Exception

With the throw statement, an exception can be thrown from a user-defined function or method. When an exception is thrown, the code that comes after it won’t run.

If you don’t catch an exception, a fatal error with the message “Uncaught Exception” will happen.

Let’s see what happens if we throw an exception and don’t catch it:

Example

<!DOCTYPE html>
<html>
<body>

<?php
function divide($num, $divisor) {
if($divisor == 0) {
throw new Exception(“Divide by zero”);
}
return $num / $divisor;
}

echo divide(15, 0);
?>

</body>
</html>

Output

Fatal error: Uncaught Exception: Division by zero in C:\coderazaa\test.php:4
Stack trace: #0 C:\coderazaa\test.php(9):
divide(5, 0) #1 {main} thrown in C:\coderazaa\test.php on line 4

The Try-and-Catch Statement

We can avoid the error in the previous example by using the try…catch statement to catch errors and keep going with the process.

Syntax

try {

code that can throw exceptions

}

catch(Exception $var)

{

code that is run when an exceptions is found.

}

The catch block shows what kind of exception needs to be caught and what variable can be used to get to the exception. In the example above, the name of the variable is $e and the type of the error is Exception.

 

Example

<!DOCTYPE html>
<html>
<body>

<?php
function divide($num, $divisor) {
if($divisor == 0) {
throw new Exception(“divide by zero”);
}
return $num / $divisor;
}

try {
echo divide(15, 0);
} catch(Exception $var) {
echo “Unable to divide.”;
}
?>

</body>
</html>

Output

Unable to divide.

The try, catch, and finally Statement

Exceptions can be caught with the try…catch…finally statement. No matter if an exception was caught or not, the code in the finally block will always run. If finally is there, you don’t have to use the catch block.

Syntax

try {
code that can throw exceptions
} catch(Exception $var) {
code that is run when an error is found
} finally {
code that is always executed regardless of whether or not an exception was caught
}

 

Example

<!DOCTYPE html>
<html>
<body>

<?php
function divide($num, $divisor) {
if($divisor == 0) {
throw new Exception(“Divide by zero”);
}
return $num / $divisor;
}

try {
echo divide(15, 0);
} catch(Exception $var) {
echo “Unable to divide. “;
} finally {
echo “Process complete.”;
}
?>

</body>
</html>

Output

 Unable to divide. Process complete.

Object of Exception

The Exception Object has details about the error or strange thing that happened when the function was run.
Syntax

new Exception (message, code, previous)

 

Parameter Values

message

Optional. A string describing why the exception was thrown

code

Optional. An integer that can be used used to easily distinguish this exception from others of the same type

previous

Not required. If this exception was thrown in a catch block of another exception, it is recommended to pass that exception into this parameter

Methods

When catching an exception, the following table shows some of the methods that can be used to get information about the exception:

getMessage()

Returns a string describing why the exception was thrown

getPrevious()

If this exception was caused by another one, this method gives back the first one. If not, then it returns null

getCode()

gives back the error code.

getFile()

gives back the full path to the file where the error happened.

getLine()

gives you the line number of the code that caused the error.

People also search

Leave a Comment

Scroll to Top