note 112607 added to exception.construct
| From: | talksonweb at gmail dot com | Date: | Wed, 03 Jul 2013 21:43:25 +0000 |
| Subject: | note 112607 added to exception.construct | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-195450@lists.php.net to get a copy of this message | ||
For those that haven't done exception chaining. Here's an example.
This allows you to add the previous exception to the next one and give yourself detailed information
in the end as to what happened. This is useful in larger applications.
<?php
function theDatabaseObj(){
if( database_object ){
return database_object;
}
else{
throw new DatabaseException("Could not connect to the database");
}
}
function updateProfile( $userInfo ){
try{
$db = theDatabaseObj();
$db->updateProfile();
}
catch( DatabaseException $e ){
$message = "The user :" . $userInfo->username . " could not update his
profile information";
/* notice the '$e'. I'm adding the previous exception to this exception. I
can later get a detailed view of
where the problem began. Lastly, the number '12' is an exception code. I can
use this for categorizing my
exceptions or don't use it at all. */
throw new MemberSettingsException($message,12,$e);
}
}
try{
updateProfile( $userInfo );
}
catch( MemberSettingsException $e ){
// this will give all information we have collected above.
echo $e->getTraceAsString();
}
?>
----
Server IP: 69.147.83.199
Probable Submitter: 182.185.189.245
----
Manual Page -- http://php.net/manual/en/exception.construct.php
Edit -- https://master.php.net/note/edit/112607
Del: integrated -- https://master.php.net/note/delete/112607/integrated
Del: useless -- https://master.php.net/note/delete/112607/useless
Del: bad code -- https://master.php.net/note/delete/112607/bad+code
Del: spam -- https://master.php.net/note/delete/112607/spam
Del: non-english -- https://master.php.net/note/delete/112607/non-english
Del: in docs -- https://master.php.net/note/delete/112607/in+docs
Del: other reasons-- https://master.php.net/note/delete/112607
Reject -- https://master.php.net/note/reject/112607
Search -- https://master.php.net/manage/user-notes.php