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) {
    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


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(empty($emailAddr))
    {
        throw new Exception("No email address provided");
    }

    if(!preg_match("%...@%", $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;
}

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to