Re: try - catch is not so clear to me...
| From: | Al | Date: | Thu, 16 Apr 2009 00:21:15 +0000 |
| Subject: | Re: try - catch is not so clear to me... | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-291541@lists.php.net to get a copy of this message | ||
Lamp Lists wrote:
hi to all! actually, the statement in the Subject line is not 100% correct. I understand the purpose and how it works (at least I think I understand :-)) but to me it's so complicated way? let's take a look in example from php.net(http://us3.php.net/try) <?php function inverse($x) {Here is a practical example that may help you. Each of the functions can throw an exception, which causes the flow to jump to the catch block. try { $checksOK = true; checkEmailAddr($userSubmitedDataArray[EMAIL_ADDR_FIELD]); checkPhoneDigits($userSubmitedDataArray[PHONE_NUM_FIELD],'phone'); checkNotes($userSubmitedDataArray, $sizesArray); } catch (Exception $e) { //Message text in check functions $userErrorMsg = $e->getMessage(); } Here is one of the functions: function checkEmailAddr($emailAddr) {if (!$x) { throw new Exception('Division by zero.'); } else return 1/$x;} try {echo inverse(5) . "\n"; echo inverse(0) . "\n";} catch (Exception $e) {echo 'Caught exception: ', $e->getMessage(), "\n";} // Continue execution echo 'Hello World'; ?> I would do the same thing, I think, less complicated: <?php function inverse($x) {if (!$x) { echo 'Division by zero'; } else return 1/$x;} echo inverse(5); echo inverse(0); // Continue execution echo 'Hello world'; ?> I know this is "too simple, maybe not the best example", but can somebody please explain "the purpose" of try/catch? Thanks. -LL
if(empty($emailAddr))
{
throw new Exception("No email address provided");
}
if(!preg_match("%\w@%", $emailAddr))
{
throw new Exception("Email address missing mailbox name.");
}
if(!filter_var($emailAddr, FILTER_VALIDATE_EMAIL))
{
throw new Exception("Email address error. Syntax is wrong. ");
}
$domain = substr(strchr($emailAddr, '@'), 1);
if(!checkdnsrr($domain))
{
throw new Exception("Email address warning. Specified domain \"$domain\" appears to be invalid. Check carefully.");
}
return true;
}