[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- 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 <lua-l@reflexis.com> 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)
> down1(str)
> end
>
> -- consider these "internal"
> function down1(str)
> down2(str)
> end
>
> function down2(str)
> if type(str) ~= "string" then
> error("strings only, please!", 4)
> end
> end
>
> -- some (separate) client/user's code
> print "starting..."
> go4it(1000)
> 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?
>
> Ashwin.
>
>
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
:)
Liam