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!]

Reply via email to