Nathan,

I was hoping for a bug! I'll take a deeper look at the ini. More research is needed, me thinks.

It's become apparent that throwing an Exception for this particular case doesn't really make sense. I'll just return early rather than throwing an exception. The logging suggestion is a great idea, but not realistic given the amount of times this function is called.

Thank you for your help!  I'll update the list with my findings.

-ec

From: "Nathan Nobbe" <[EMAIL PROTECTED]>
To: "Peter Pan" <[EMAIL PROTECTED]>
CC: php-general@lists.php.net
Subject: Re: [PHP] Exceptions
Date: Thu, 9 Aug 2007 13:00:51 -0400

Peter,

you are doing something called swallowing the exception.  it may make sense
for your application to
continue processing if the closeCallTracker method throws an error, but at a
minimum you should
log the details of the exception so that you know why its occurring;
something like:

try {
   closeCallTracker($appId, $salesRepId);
} catch (Exception $e) {
   // No need to display anything to user if call tracker is not closed
   MyPHPLog::logMsg($e->getMessage());
}

also, i would assume processing does continue after you swallow the
exception.  in order to determine
why a blank page is displaying you should follow the logic in your
application to the point where it sends
html to the client browser during a case where the closeCallTracker() method
throws an error.

-nathan

On 8/9/07, Peter Pan <[EMAIL PROTECTED]> wrote:
>
> Peeps,
>
> I'm having an issue where throwing Exceptions are displaying a blank page
> even though the Exception is being caught in a try...catch
> statement.  This
> is happening on our production server where warnings, errors, exceptions,
> etc. are not to be displayed to the user.  The assumption is that even
> though an Exception is being thrown it should be caught rather than
> displaying a blank page. Is there a specific configuration variable that
> needs to be set in php.ini to allow warnings to not be displayed but
> Exceptions to still be caught? Or is this just a bug? Here is some code
> that replicates the issue:
>
> try {
>     closeCallTracker($appId, $salesRepId);
> } catch (Exception $e) {
>     // No need to display anything to user if call tracker is not closed
> }
>
> function closeCallTracker($appId, $salesRepId) {
>
>    // Some code here...
>
>    // A pretty near example of why the Exception is being thrown in our
> system
>    if ($callTrackerAlreadyClosed) {
>       throw new Exception('Can not close a call tracker that has already
> been closed.');
>    }
> }
>
> I'm expecting the program to continue as normal as the Exception has been > caught appropriately... but instead this code is displaying a blank page.
>
> We're using PHP: 5.1.2 on SuSe
>
> This is really a bizarre issue and any help would be greatly appreciated. > I've searched PHP.net and Google far too long on this issue. Thank you in
> advance.
>
> -ec
>
> _________________________________________________________________
> Learn.Laugh.Share. Reallivemoms is right place!
> http://www.reallivemoms.com?ocid=TXT_TAGHM&loc=us
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

_________________________________________________________________
Messenger Café — open for fun 24/7. Hot games, cool activities served daily. Visit now. http://cafemessenger.com?ocid=TXT_TAGHM_AugHMtagline

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

Reply via email to