www.delorie.com/gnu/docs/guile/guile_297.html   search  
Buy GNU books!

Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

26.7 Exceptions

A common requirement in applications is to want to jump non-locally from the depths of a computation back to, say, the application's main processing loop. Usually, the place that is the target of the jump is somewhere in the calling stack of procedures that called the procedure that wants to jump back. For example, typical logic for a key press driven application might look something like this:

  read the next key press and call dispatch-key

  lookup the key in a keymap and call an appropriate procedure,
  say find-file

  interactively read the required file name, then call

  check whether file exists; if not, jump back to main-loop

The jump back to main-loop could be achieved by returning through the stack one procedure at a time, using the return value of each procedure to indicate the error condition, but Guile (like most modern programming languages) provides an additional mechanism called exception handling that can be used to implement such jumps much more conveniently.

26.7.1 Exception Terminology  Different ways to say the same thing.
26.7.2 Catching Exceptions  Setting up to catch exceptions.
26.7.3 Throwing Exceptions  Throwing an exception.
26.7.4 Catch Without Unwinding  Catch without unwinding the stack.
26.7.5 How Guile Implements Exceptions  How Guile implements exceptions.

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003