[PHP] Re: Best error handling

2009-02-27 Thread Nathan Rixham

Davi Ramos wrote:

Hi. I have a kind of webserver that certain applications communicate with.
The problem is that the script (named peer.php) must output data as xml.
Thats ok (thanks to XMLWriter). The problem is that when some error occurs
(those note catchable by set_error_handler) I have no control on data being
outputed.

I would like to output xml even on fatal errors (in that case, telling that
something gone wrong). I tried using register_shutdown_function but it is
crashing (as the nature of fatal errors that make the envirionment
unstable).

Any idea?

Thanks!



not a nice answer but make sure you're application has no fatal errors - 
a fatal error halts the compiler as it's fatal, thus there is no way to 
implement anything else afterwards or turn it in to an exception or 
suchlike.


further, for live servers you really should have display errors set to 
off in you're php.ini - at which point nothing will be returned


try: (not tested or particularly thought about)
1: move all the code from peer.php in to an include file
2: make you're main peer.php file contain only
?php
try {
 require_once 'include_file.php';
} catch($e) {
echo 'some xml error';
}
?

can't promise that'll work though, to test quickly just add all that to 
a php file and run it (as you don't have the required file so a fatal 
will get raised)


regards and good luck - nathan

ps: may check this one out myself, sure I've done it years ago when i 
still made sites


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



[PHP] Re: Best error handling

2009-02-27 Thread Davi Ramos
No luck with your solution... I think that the only way is (as you said) to
make sure that there will be no fatal errors :)
I'll will implement the error handler as well (to catch some minor errors)
and uncaught exceptions.

The method for catch all errors using a shutdown function appears to work,
but it crashes when using my php stream mock implementation (that I use to
simulate calls to the script).

Thanks anyway Nathan!

PS. Is there some plan to make PHP full exception-ready, dropping the usual
way of return values?

Davi

On Fri, Feb 27, 2009 at 9:51 PM, Nathan Rixham nrix...@gmail.com wrote:

 Davi Ramos wrote:

 Hi. I have a kind of webserver that certain applications communicate with.
 The problem is that the script (named peer.php) must output data as xml.
 Thats ok (thanks to XMLWriter). The problem is that when some error occurs
 (those note catchable by set_error_handler) I have no control on data
 being
 outputed.

 I would like to output xml even on fatal errors (in that case, telling
 that
 something gone wrong). I tried using register_shutdown_function but it is
 crashing (as the nature of fatal errors that make the envirionment
 unstable).

 Any idea?

 Thanks!


 not a nice answer but make sure you're application has no fatal errors - a
 fatal error halts the compiler as it's fatal, thus there is no way to
 implement anything else afterwards or turn it in to an exception or
 suchlike.

 further, for live servers you really should have display errors set to off
 in you're php.ini - at which point nothing will be returned

 try: (not tested or particularly thought about)
 1: move all the code from peer.php in to an include file
 2: make you're main peer.php file contain only
 ?php
 try {
  require_once 'include_file.php';
 } catch($e) {
 echo 'some xml error';
 }
 ?

 can't promise that'll work though, to test quickly just add all that to a
 php file and run it (as you don't have the required file so a fatal will get
 raised)

 regards and good luck - nathan

 ps: may check this one out myself, sure I've done it years ago when i still
 made sites




-- 
Davi R. Tavares


Re: [PHP] Re: Best error handling

2009-02-27 Thread Michael A. Peters

Nathan Rixham wrote:



further, for live servers you really should have display errors set to 
off in you're php.ini - at which point nothing will be returned


but they are still in the server logs - so they are still viewable if 
you need to see what errors occur (just mentioning it because some don't 
know this)


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