Exception hacks (was Re: [Newbies] Changing error message)
Bert Freudenberg
bert at impara.de
Tue Aug 22 09:32:46 UTC 2006
Ron Teitelbaum schrieb:
> In order to not break your regular code you will need to wrap the normal
> call to saleItem:price:taxRate: with:
>
> on: GetSaleDateError do: [:ex | ex resume: Date today].
Actually there is no need to wrap any regular code, if you do it
properly ;-)
You should not call this GetSaleDateError but, say, SaleDateHack and
make it a Notification subclass. Unlike Error subclasses, Notification
subclasses work fine even without an on:do: exception handler. That's
because their #defaultAction simply answers nil instead of opening the
debugger.
If there is no handler, "SaleDateHack signal" will simply answer nil, so
you can replace your original "Date today" code with
date := SaleDateHack signal ifNil: [Date today].
(this is even better design-wise than implementing your notification's
#defaultAction as "self resume: Date today" because you see the default
value right where it is used, rather than hidden in the notifiction class)
> (Don't tell anyone I mentioned this !^)
Don't tell anyone I replied to this on the *newbies* list - I'd consider
this well advanced. It's fun stuff anyway ;-)
- Bert -
More information about the Beginners
mailing list