[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: lua 5.2 beta & error level
- From: liam mail <liam.list@...>
- Date: Thu, 3 Nov 2011 13:42:52 +0000
On 3 November 2011 13:05, Ashwin Hirschi <firstname.lastname@example.org> wrote:
> Looking at the "error" function in Lua 5.2 beta, would it not be more useful
> (and friendly) if the traceback that's being generated would also take the
> "level" parameter into account?
> For example, this scripted scenario:
> -- public primitive
> function go4it(str)
> -- consider these "internal"
> function down1(str)
> function down2(str)
> if type(str) ~= "string" then
> error("strings only, please!", 4)
> -- some (separate) client/user's code
> print "starting..."
> print "done."
> prints the "starting..." message and then the following alert:
> errorlevel.lua:20: strings only, please!
> stack traceback:
> [C]: in function 'error'
> errorlevel.lua:14: in function 'down2'
> errorlevel.lua:9: in function 'down1'
> errorlevel.lua:4: in function 'go4it'
> errorlevel.lua:20: in main chunk
> [C]: in ?
> The very first line correctly identifies the line (20) in the source code
> I'd like it to (and indicated when calling error with level 4).
> However, the traceback begins with 4 "extra" lines that'll likely confuse
> the person who's only seeing the client code... (while also exposing
> internal/implementation details I'd like to hide!).
> Please note that in "real life" the client code is much more complicated and
> often nested. So, having a traceback definitely does make sense.
> I'd just like it to be a bit more to the point when I've indicated as much
> to the error function. Isn't that the function of error's level parameter in
> the first place?
> What are your thoughts?
Why not overwrite the traceback function and strip the message down to
the information you want to reveal? Personally when I ask for a
traceback (which is what error is doing) I want to see the traceback