[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: lua 5.2 beta & error level
- From: "Ashwin Hirschi" <lua-l@...>
- Date: Thu, 03 Nov 2011 14:05:45 +0100
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.