Re: How can i get the location of an exit()/die() from within register_shutdown_function()?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Eric Butera wrote:
On Wed, Jul 16, 2008 at 3:23 AM, Mathijs van Veluw
<mathijs.van.veluw@xxxxxxxxxxx> wrote:
Hello there,

I have an shutdown function to catch fatal-errors etc..
Now when there is an exit() somewhere i get an empty message from
get_last_error().
I want to know the location of this exit() or die().

Is there a way to get the file and line-number from where the exit/die
originated?

Thx in advance.

The way I handle this is by throwing exceptions in my code.  So let's
say that there is a db connection/query failure for whatever reason.
Instead of using query() or die() which is not user friendly, I throw
an exception which bubbles up.  Once it hits the top then I can catch
it, log it accordingly, and show the user a friendlier error page
saying Oops!

With an exception you get exactly what you want, a full-blown stack
trace complete with paths, line numbers etc.  You also get the ability
to be graceful about what you show to the end user.

...but I have the feeling that you're already dealing with a situation
in lots of existing code.  Perhaps you could combine some suggestions
in this thread and replace your die/exit statements with a custom
function which logs a debug_backtrace() and then really dies, but
gracefully of course.  :)

As an aside, if I were to see some jibberish about a query and line
numbers when I click a link I'd leave that site.  (And for the
archives) It is a security vuln to show full file paths to an end
user.  If someone is tampering with your system we shouldn't give them
any more information than they can already get.

Well i don't use 'OR die()' stuff. But exceptions.

For some reason from within the register_shutdown_function() function i get an empty error message.
This only occurs, as far as i know, when there is an exit somewhere.

I want to trace where this comes from.

But i think that this isn't possible, as i looked on the web and there arn't any solutions.

Thx for the help.

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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux