On Wed, Jul 16, 2008 at 3:23 AM, Mathijs van Veluw
<[EMAIL PROTECTED]> 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.

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

Reply via email to