Exceptions are also very useful as control structures sometimes. For example: - exiting from a traversal (graph, tree, `Foo.iter` functions) early - being able to return a result from any point in a very large algorithm (e.g. returning "sat" or "unsat" in a SAT solver, where the main algorithm can span several hundreds or thousands of lines). -- Simon Cruanes http://weusepgp.info/ key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 62B6