On 11/7/07, skaller <[EMAIL PROTECTED]> wrote: > Roughly: exceptions are just too dynamic and global. Whereas > using variants (option types etc) are too static and local. > > Haskell can partly solve this with Monads, but the solution > still isn't really satisfactory (because it is too invasive).
Then there's the erlang model where you have a huge number of lightweight threads and if there's a fatal error, just kill the current thread. Other threads can register that they want to know if the thread died. These monitor threads can then handle the error. It's kind of similar to threads, but using erlang's highly cocurrent model things are done at a much more different scale. There's also lisp's condition system, which basically throws a continuation that allows you recover from an error. This can help with exceptions that are thrown at a low level that don't really make sense at the high level. For instance, parsing a log file could throw a condition that lets you skip over corrupted messages. ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language