Hi, i recently had a weird endless loop when catching exceptions, it basically came down to this:
[ self error: 'foo' ] on: 1 do: [ :ex | ex return ] This goes into an infinite loop. Is that expected behavior? When ctrl-c'ing i got this _very long_ cyclic backtrace: ... MessageNotUnderstood(Exception)>>#signal SmallInteger(Object)>>#doesNotUnderstand: optimized [] in BlockClosure class>>#exceptionHandlerSearchBlock [] in CoreException>>#instantiateNextHandler: MethodContext(ContextPart)>>#scanBacktraceForAttribute:do: CoreException>>#instantiateNextHandler: MessageNotUnderstood(Exception)>>#signal SmallInteger(Object)>>#doesNotUnderstand: optimized [] in BlockClosure class>>#exceptionHandlerSearchBlock [] in CoreException>>#instantiateNextHandler: MethodContext(ContextPart)>>#scanBacktraceForAttribute:do: CoreException>>#instantiateNextHandler: MessageNotUnderstood(Exception)>>#signal ... So basically the object 1 doesn't understand some exception handling message and throws an exception itself, which seems to trigger the handler again. - I would expect that a exception thrown while catching one (where the catching process fails) would throw that exception so that it doesn't trigger the same catching process. But maybe i'm just plain wrong with my expectations. Robin _______________________________________________ help-smalltalk mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-smalltalk
