Tab Julius wrote:
> Well, it'll help mask errors, but if you have an error, now you'll never
> know where it was or what the user was doing.
>
> All you're doing is suppressing the error MESSAGE, but whatever the error
> (non-existent variable, undefined handler, non-list, etc), the error will
> still exist and will probably raise its ugly head shortly thereafter in
> some hard-to-track-down side-effect.
and Bruce Epstein wrote:
> IMNSHO it is insane to ship a project with a known bug by disabling the
> error message. How can any of *us* predict whether it will affect the
> project when we don't know what is causing the error or the nature of your
> project?
OK guys. Thanks for the advice. The thing is this:
I've been working for 6 days now at 18-20 hours per day behind my machine,
and I can be pretty sure we are doing all we can about this.
The problem with runtime errors is, they are not really useful. The user
get's annoyed and clicks [quit] in a situation where there's a small error
which would possibly not even have any impact. And is further annoyed by
seeing an error message at all...
But you have a point, what comes to tracking down bugs, it gets really hard
without the error messages unless...
I think I've come up with a compromise / tool.
1# I take Bruce's advice and write that nice ini-line
2# I suppress error messages
3# I log them
4# I upload them
on alerthook me, err, msg, type
global datestring, errorlog, lastErrorTimes
--datestring = hh:mm:ss mm/dd/yyyy
-- errorlog 2 dimensional array of errors
-- lastErrorTimes = list containing 3 last error timestamps
quitOnEnd = 0
if the runmode = "projector" then
if type = #script then
LogLine = []
errorLoc = the frame&"/"&the moviename
add LogLine, datestring
add LogLine, errorLoc
add LogLine, err
add LogLine, msg
add errorlog, LogLine
curErrorTime = the milliseconds
if lasterrortimes[1] + 1000 > curErrorTimes then
-- if we get here the error is unrecoverable (loop)
quitOnEnd = 1
else
add lastErrorTimes, curErrorTime
delete lasterrorTimes[1]
Writelog(errorLog) -- converts the array to a csv - table and saves it
if quitOnEnd = 0 then
return 1 --(invisibly dismisses the error alert and continues)
else
return 0 --(invisibly dismisses the error alert and quits=
end if
end if
end if
end
--
Now if this works, and a user has a problem, I get more detailed info then I
would (on average get from a 'dumb user' AND i not only get the one bug, but
I get all of them)
Now, if we combine this with a feature, that if #internetconnected = TRUE
the log is posted to a cgi script (invisibly offcause <GRIN>). The old log
is deleted etc....
What do you think? Should I go and catch some sleep, or am I onto something?
Pekka
[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo. Thanks!]