Как реализация #doesNotUnderstand в классе Object приводит к открытию отладчика в Squeak smalltalk?

Я знаю, что реализация сигнализирует MessageNotUnderstood исключение, но как это в конечном итоге открыть отладчик?

1 ответ

Решение

Когда исключение остается необработанным после того, как оно было сигнализировано, его #defaultAction вызывается. MessageNotUnderstood>>defaultAction делегирует Error>>defaultAction, который сигнализирует UnhandledError (еще одно исключение). Это исключение, в свою очередь, имеет действие по умолчанию, код которого читается так:

^ ToolSet debugError: self exception

... который открывает отладчик, если вы используете StandardToolSet (который используется по умолчанию в обычных Squeak-изображениях).

Другие вопросы по тегам