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 图像中的默认设置),它会打开调试器。
我知道实现会发出 MessageNotUnderstood
异常信号,但最终如何打开调试器?
当异常在发出信号后仍未处理时,将调用其 #defaultAction
。 MessageNotUnderstood>>defaultAction 委托给 Error>>defaultAction,它表示 UnhandledError
(另一个异常)。反过来,这个异常有一个 defaultAction,其代码如下所示:
^ ToolSet debugError: self exception
...如果您使用 StandardToolSet(这是常规 Squeak 图像中的默认设置),它会打开调试器。