In this tutorial we will learn how to handle exception in php and all php error handling best practices.
Exception handling is implemented to catch any runtime error handle the unwanted termination of the application; it shows some user-friendly error message.
Exception can occur for various reasons; here is few reasons that cause an exception.
In this article you will learn about the different types of errors including error logs, error handling functions, error handling, and some error handling technique provided by PHP framework error handling.
So sometimes we are saying error sometimes exception, is there any difference! actually no, both indicates what would happen, when something goes wrong in code.
We write code inside the try block that may potentially throw an exception.
Inside catch block codes written for handling the exception, so the exception does not terminate the application, also this is the place where we can call all type of error logging methods
Using throw keyword we can throw the current exception or can throw a new exception with custom message
Most of the developer don’t write this finally block, this block is always executed whether any exception occur or not, so if you need anything to be executed at last, this is the place to call the method
Let's look at the code below
function checkAge($age) { $ageInput = number_format($age, 2); if($ageInput<=18) { throw new Exception("Age should 18 or more"); } return true; }
Above function expect an integer value.
Now we call the above function twice, one with right parameter, second time with wrong parameter,
so that cause an error
try { checkAge(20); // excuted with no error checkAge(some_string_value); // this will cause an exception //If the exception is thrown, this text will not be shown echo 'Successfully Executed, No Exception'; } //catch exception catch(Exception $e) { echo 'Message: ' .$e->getMessage(); }
All error details either you can log in database or/and for quick notification send an email to developer team
Now we create a custom exception class then use that class to catch and throw custom exception in different situation with different try catch block.
<?php class customException extends Exception { public function errorMessage() { //custom error message $errorMsg = 'Error on line '.$this->getLine().' in File '.$this->getFile() .' in code : <b>'.$this->getMessage().'</b> '; return $errorMsg; } }?>
We can call the above class in difference exception handling scenario.
Consider following email error handling
<?php $email = "incorrect email @domain...com"; try { //check if valid email if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE) { //throw exception if email is not valid throw new customException($email); } } catch (customException $e) { //display custom message echo $e->errorMessage(); }?>
Hope this tutorial was helpful; please write us your feedback.