When I read that, I thought that errorNotIndexable would raise an Exception different from Error.
But this is not the case and it means that people should write not so good tests by checking Error
instead of a concrete Exception.
[[[
MyExampleSetTest >> testIllegal
�� �� �� �� self should: [ empty at: 5 ] raise: Error.
�� �� �� �� self should: [ empty at: 5 put: #zork ] raise: Error
]]]
We even have a rule that states that we should not catch on Error
at: index
�� �� �� �� "Primitive. Assumes receiver is indexable. Answer the value of an
�� �� �� �� indexable element in the receiver. Fail if the argument index is not an
�� �� �� �� Integer or is out of bounds. Essential. See Object documentation
�� �� �� �� whatIsAPrimitive. Read the class comment for a discussion about that the fact
�� �� �� �� that the index can be a float."
�� �� �� �� <primitive: 60>
�� �� �� �� index isInteger ifTrue:
�� �� �� �� �� �� �� �� [self class isVariable
�� �� �� �� �� �� �� �� �� �� �� �� ifTrue: [self errorSubscriptBounds: index]
�� �� �� �� �� �� �� �� �� �� �� �� ifFalse: [self errorNotIndexable]].
�� �� �� �� index isNumber
�� �� �� �� �� �� �� �� ifTrue: [^self at: index asInteger]
�� �� �� �� �� �� �� �� ifFalse: [self errorNonIntegerIndex]
thoughts comments?