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?


On Fri, Feb 27, 2009 at 9:51 PM, Nathan Rixham <> 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

Reply via email to