Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
Local Exception HandlingWiP.LocalExceptionHandling HistoryHide minor edits - Show changes to markup 2009-11-13 04:57
by -
Changed line 42 from:
Benefits: to:
Pros: Added line 44:
Deleted line 46:
Added lines 48-50:
Cons:
2009-11-13 03:20
by -
Changed lines 34-47 from:
END Foobar;@] to:
END Foobar;@] Restrictions:
Benefits:
2009-11-13 02:53
by - An idea for a simple zero cost exception handling mechanism
Added lines 1-34:
PROCEDURE Foobar( p1, p2, p3 : T ) : Status; BEGIN IF foo = NIL THEN BAILOUT(FooNilError); (* raise local exception *) ELSE doFooStuff; END; DoBar(bar); IF bar = 0 THEN BAILOUT(BarZeroError); (* raise local exception *) ELSE doBarStuff; END; DoBaz(baz); IF baz > MAXBAZ THEN BAILOUT(BazOverflowError); (* raise local exception *) ELSE doBazStuff; END; RETURN Success; (* handle local exceptions *) ON BAILOUT BazOverflowError: UndoBarStuff; BarZeroError : UndoFooStuff; FooNilError : RETURN Failure; END Foobar; |