2009/10/1 Mariano Martinez Peck <[email protected]>:
>
>
> 2009/10/1 Hernan Wilkinson <[email protected]>
>>
>> do this...
>>
>> [[[[ a block of code where you do something that can singal different
>> exceptions ]
>> on: XXXError
>> do: [ : ex | 'I do what I need to do when I get the error XXX' ]]
>> on: YYYError
>> do: [ : ex | 'I do what I need to do when I get the error YYY' ]]
>> on: Error
>> do: [ : ex | 'here I do in the rest of the cases' ]]
>> ensure: [ 'Here I do what I always need to do, no matter if there is
>> an error or not' ]
>>
>
How about a visitor pattern?
[ a block of code where you do something that can singal different exceptions ]
on: Error do: [:ex |
ex visitWith: self
]
and then in each error subclass, you can do
visitWith: handler
^ handler handleXXXerror: self
while, by default, Error could implement this method as:
visitWith: handler
^ handler handleError: self
so, instead of bunch of cases, you having a bunch of methods, which
handling particular case.
--
Best regards,
Igor Stasenko AKA sig.
_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project