Network+Files teams merge into I/O team

stéphane ducasse ducasse at iam.unibe.ch
Thu Jan 5 10:13:35 UTC 2006


Yes this was something like that...Terrible.

>> I think that the problem is that it is a Notification.  Easily  
>> ignored
>> but as soon as you put a "catch all" handler ([] on: Exception do:  
>> [:ex|
>> ...]) around a segment which raises it you all-of-a-sudden start  
>> seeing
>> these exceptions.  I could be wrong here but I think that's the
>> problem.  I think that catching Exception is generally not a good  
>> idea
>> though.
>>
>>
>
> Now it's coming back to me....the problem is when you nest I/O.
>
> [self doSomethingWith: someStream next] on: EndOfStreamNotification  
> do:
> [:ex | ]
>
> causes problems if doSomethingWith is written as:
>
> doSomethingWith: someObject
>     [someOtherStream atEnd] whileFalse: [someOtherStream next]
>
> because the "someOtherStream next" will eventually raise
> EndOfStreamNotification which will be caught by the outer handler.  Of
> course in real life you get tripped up by a method you didn't write
> which follows a convension you didn't expect (maybe you didn't even  
> know
> it used a stream!).
>
> David
>
>




More information about the Squeak-dev mailing list