[squeak-dev] The Inbox: Collections-mt.812.mcz
Eliot Miranda
eliot.miranda at gmail.com
Wed Dec 19 02:01:07 UTC 2018
On Tue, Dec 18, 2018 at 1:20 PM Chris Muller <asqueaker at gmail.com> wrote:
> Hi Marcel,
>
> I've needed something like this before too, but since I also wanted to
> work more with the Error's, I simply provided an additional Block for
> the inner-layer which took each Error as the argument. Then my
> calling could log to Transcript or add to a separate Collection (since
> I prefer to view "object messages" in an Explorer instead of only text
> in the Transcript), and nicely avoids the unpleasant dependency on
> Transcript.
>
> I also think it could just trap Error (or MessageNotUnderstood) since
> that is the stated intended usage. I think if one needed to specify a
> custom exceptionOrExceptionSet, then it seems like they'd probably
> just write normal error-handling code.
>
+1. I was going to suggest the same thing. It's much more flexible to
factor the inner two methods as:
try: aBlock ignore: exceptionOrExceptionSet
"Evaluate aBlock with each of the receiver's elements as the
argument. On error, skip that element and continue."
^self try: aBlock ignore: exceptionOrExceptionSet ifException: nil!
try: aBlock ignore: exceptionOrExceptionSet ifException: unaryBlockOrNil
"Evaluate aBlock with each of the receiver's elements as the
argument. On error, skip that element and continue."
^ self do: [:ea |
[aBlock value: ea]
on: exceptionOrExceptionSet
do: [:err | unaryBlockOrNil ifNotNil: [unaryBlockOrNil
value: err]]]!
then
try: aBlock ignore: exceptionOrExceptionSet logged: aBoolean
^self try: aBlock ignore: exceptionOrExceptionSet ifException: (aBoolean
ifTrue: [[:err| Transcript showln: err messageText]])
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20181218/8c4ba440/attachment.html>
More information about the Squeak-dev
mailing list
|