[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

menu-debugger.lisp



  Date: Mon, 28 Jun 1993 17:26:55 +0100
  From: Vincent Keunen <keunen@montefiore.ulg.ac.be>
  
  The idea would be to put a "catch" (something like ignore-errors or a
  handler-case on "error" or "condition") at the highest level possible
  (around the top-level loop?).  Then run some code to produce as complete a
  report of the error as possible that would be written to a file, put up a
  dialog to the user saying something like "This action could not be
  completed for unknown circumstances.  Please contact the developer for
  fixing this problem." and then restart the toplevel loop.

It would be great if we could always recover from an error without
bothering the user with details.  The problem with this approach is that

  1) It is not always possible to ignore an error.  For example,
     your toplevel loop may display a window that cannot be displayed.

  2) Selecting the restart at the highest level is only a heuristic.
     It may not be the right choice.  I believe the right thing is
     to provide many levels of restarts and let the user choose
     how many things will be restarted and how much of their hard
     work should be thrown away.

  3) It is not always the developer's fault, in which case you need
     a "troubleshooting guide" to help the user diagnose the problem.
      a. file system full
      b. improper installation
      c. hardware failure
     You might automatically handle the cases that you can think of,
     but you should also plan on the unexpected.

  4) Not all processes can be customized 
     (e.g. the CLIM event dispatcher, the scheduler)