On Mar 9, 2:21 pm, "Diez B. Roggisch" <[EMAIL PROTECTED]> wrote: > Is this soft-exception implemented anywhere, so that one can see what > experiences and best practices have evolved around using it?
Lie's idea is to separate exceptions in two groups, those that must be handled and those that don't. A better way is to have two different ways to raise exceptions: one exceptional situation can be "Hard" in some situations and "Soft" in others, and it is up to the way of raising to make the choice, while the exception stays the same. Common Lisp has two ways of raising: functions "error" and "signal". Python's "raise" is like CL's "error": you end up in the debugger if the exception is not handled. Exceptions that are raised by CL's "signal" don't have to be caught: if there is no matching "except" clause the raise statement becomes a "pass". Or as Wikipedia states nicely: "Conditions are a generalization of exceptions. When a condition arises, an appropriate condition handler is searched for and selected, in stack order, to handle the condition. Conditions which do not represent errors may safely go unhandled entirely; their only purpose may be to propagate hints or warnings toward the user." http://en.wikipedia.org/wiki/Exception_handling#Condition_systems - Willem -- http://mail.python.org/mailman/listinfo/python-list