Re: idea: letting the line number and file name be set via user_error

From: Date: Tue, 07 May 2013 19:32:21 +0000
Subject: Re: idea: letting the line number and file name be set via user_error
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-67352@lists.php.net to get a copy of this message
On 7 May 2013 12:24, Thomas Anderson <zelnaga@gmail.com> wrote: > I thought half the point of OOP was to abstract away the internals and as > is the error messages don't make much sense unless you *do* consider the > internals. > > Like let's say you have a bignum library and you're doing > $fifteen->divide($zero) on line 5 of test.php. Seems to me that it'd be > more useful to say "error: division by zero" on line 5 of test.php instead > of line line xx of file yy. It's like... > > "ooh - let me try to find where I'm doing division by zero. Let me to line > xx of file yy that I didn't even write and don't know a thing about. ok... > so it looks like that's in the private _helper_function(). And > _helper_function() is called by 15x other public functions. I give up!" Sure, but in practice, that's why most development environments provide backtraces on error or uncaught exception, whether through something like XDebug or via a call to debug_print_backtrace() in the error/exception handler. That gives you both the specific information you want (the last file and line of non-library code that called into the erroneous function(s)) and all the additional context you might need. As Ferenc said, I also don't understand how you'd get the fake file and line numbers for the trigger_error() call without guesswork or going back up through the backtrace anyway, which is something that doesn't belong in non-handler code, IMO. > As an end user of a library you shouldn't have to actually look into that > library if you're the one who's not properly handling something. I agree, but this is already a solved problem in PHP. All the tools needed are there. Adam

« previous php.internals (#67352) next »