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