Как реализация #doesNotUnderstand в классе Object приводит к открытию отладчика в Squeak smalltalk?
Я знаю, что реализация сигнализирует MessageNotUnderstood
исключение, но как это в конечном итоге открыть отладчик?
1 ответ
Решение
Когда исключение остается необработанным после того, как оно было сигнализировано, его #defaultAction
вызывается. MessageNotUnderstood>>defaultAction делегирует Error>>defaultAction, который сигнализирует UnhandledError
(еще одно исключение). Это исключение, в свою очередь, имеет действие по умолчанию, код которого читается так:
^ ToolSet debugError: self exception
... который открывает отладчик, если вы используете StandardToolSet (который используется по умолчанию в обычных Squeak-изображениях).