Over a million developers have joined DZone.

Custom Error Handling in PHP

· Web Dev Zone

Web application don't always go to plan, that much is obvious. Users will continuously find ways to trigger errors within your application and how you record, contain, and eliminate these errors is a true testament to your code. PHP provides means for trapping errors and dealing with them the way you need them to be dealt with. The best part of PHP error handling is that it's extremely customizable using PHP's set_error_handler() function.

The Error Handler

function xhandler($number,$string,$file,$line,$context)
{
//log to text file?

//log to xml file?

//store in database?

//whatever you want to do!
}

The Explanation

Your error handling function can accept five parameters:

  • $number - Integer error number representative of the PHP error level
  • $string - String description of the error
  • $file - File in which the error occurred
  • $line - Line number in the file that the error occurred
  • $context - Context of the area, including an array of each variable in scope

The Usage

/* use this error for ALL (E_ALL) errors */
set_error_handler('xhandler',E_ALL);

This is a basic example of the custom error handling in PHP. The programming and methods you use to save and analyze these errors is up to you, but common methods include:

  • Saving the error to a database
  • Saving the error information to a local file (text, xml, etc.)
  • Redirecting the user to another page
  • Absolutely nothing (I've actually seen this in other dev's code).

Though you can do almost anything in your error handling function(s), I recommend the following for error handling functions:

  • Store the date/time of the error
  • Use more than one method of storing error logs (database, file, etc.)
  • Email severe warnings/errors to yourself so you may deal with any critical problems as soon as possible
  • Use different error handling functions for different error levels if necessary
  • Create a new file log daily so that your log file doesn't balloon

How do you record PHP errors in your applications?

Topics:

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}