PHP has exception handling - where you can
try a block of code; it it completes, that's good and normal, but if something doesn't work in the normal manner an exception is thrown, and a piece of code to mop up the problem is run, in a
catch block.
I've written an example to show this ... I have a function that will return the first or second half of an input string, but if the string that's input to it is an odd number of characters long, it can't work so it
throws an exception. See that code - the function and the exception handler too -
[here].
Here is what I get when I run that code:
Dorothy-2:sj grahamellis$ php exp.php
Ple-ase [use] [various] excep-tions i-n [PHP]
can't cut use in 2
can't cut various in 2
can't cut PHP in 2
Dorothy-2:sj grahamellis$
Exceptions were only added to PHP quite late in the day, so you'll find that many issues with older functions are handled as errors and warnings, but modern OO based functions (and new code you write!) should use exceptions. Exception objects have a number of methods you can run on them - in the example I've given, you'll see that I've used getMessage to find out a description of the exception.
(written 2010-03-18, updated 2010-03-25)
Associated topics are indexed under
H999 - Additional PHP Material [3210] Catchable fatal error in PHP ... How to catch, and alternative solutions such as JSON - (2011-03-22)
[3118] Arrays of arrays - or 2D arrays. How to program tables. - (2011-01-02)
[2215] If nothing, make it nothing. - (2009-06-02)
[2073] Extra PHP Examples - (2009-03-09)
[1623] PHP Techniques - a workshop - (2008-04-26)
[1519] Flipping images on your web page - (2008-01-26)
[1505] Script to present commonly used images - PHP - (2008-01-13)
[1485] Copyright and theft of images, bandwidth and members. - (2007-12-26)
[1451] More PHP sample and demonstration programs - (2007-12-01)
[1391] Ordnance Survey Grid Reference to Latitude / Longitude - (2007-10-14)
[1390] Converting from postal address to latitude / longitude - (2007-10-13)
[1389] Controlling and labelling Google maps via PHP - (2007-10-13)
[1270] PHP Standalone - keyboard to screen - (2007-07-18)
[1194] Drawing hands on a clock face - PHP - (2007-05-19)
[1104] Drawing dynamic graphs in PHP - (2007-03-09)
[1053] Sorting people by name in PHP - (2007-01-26)
[1020] Parallel processing in PHP - (2007-01-03)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
[917] Syntax checking in PHP - (2006-11-07)
[839] Reporting on the 10 largest files or 10 top scores - (2006-08-20)
[822] PHP - a team member leaves - (2006-08-04)
[806] Check your user is human. Have him retype a word in a graphic - (2006-07-17)
[789] Hot answers in PHP - (2006-07-02)
[687] Presentation, Business and Persistence layers in Perl and PHP - (2006-04-17)
[665] PHP Image viewing application - (2006-04-01)
[603] PHP - setting sort order with an associative array - (2006-02-13)
[563] Merging pictures using PHP and GD - (2006-01-13)
[493] Running a Perl script within a PHP page - (2005-11-12)
[483] Double Dollars in PHP - (2005-11-02)
[468] Stand alone PHP programs - (2005-10-18)
[372] Time calculation in PHP - (2005-07-08)
[337] the array returned by preg_match_all - (2005-06-06)
[322] More maps - (2005-05-23)
[320] Ordnance Survey - using a 'Get a map' - (2005-05-22)
[239] What and why for the epoch - (2005-03-08)
[54] PHP and natural sorting - (2004-09-19)
5595
Some other Articles
Security considerations in programming - what do we teach?A lovely spring afternoonFreedom of Information - consideration for web site designersStairsException handling in PHPCar Parking in MelkshamAdding extensions to PHP Open Source applications - callbacksTcl - a great engineering languageStatic class members in PHP - a documented exampleHow to build a test harness into your PHP