Object class 中#doesNotUnderstand 的实现如何导致在 Squeak smalltalk 中打开调试器?

How does the implementation of #doesNotUnderstand in the Object class result in opening a debugger in Squeak smalltalk?

我知道实现会发出 MessageNotUnderstood 异常信号,但最终如何打开调试器?

当异常在发出信号后仍未处理时,将调用其 #defaultAction。 MessageNotUnderstood>>defaultAction 委托给 Error>>defaultAction,它表示 UnhandledError(另一个异常)。反过来,这个异常有一个 defaultAction,其代码如下所示:

^ ToolSet debugError: self exception

...如果您使用 StandardToolSet(这是常规 Squeak 图像中的默认设置),它会打开调试器。