如何在Message Not Understood消息中找到哪个是错误的消息?

时间:2014-07-18 18:33:00

标签: smalltalk pharo

我想找到触发MNU的消息名称,我该怎么办?

例如,如果我

Transcript explode . 

这将触发MNU,因为方法爆炸不存在,但是如何找到触发MNU的消息的名称是"爆炸" ?

2 个答案:

答案 0 :(得分:4)

试试这个:

[成绩单爆炸]     on:MessageNotUnderstood     做:[:ex |前消息选择器]

异常消息是Message的一个实例。它理解选择器参数等。

请记住,例外是一种附带现象。当不理解消息时,VM实际上发送了doesNotUnderstand:aMessage,并且Object中的doesNotUnderstand:方法引发了异常。 doesNotUnderstand:的参数是一条消息,与异常中的诅咒相同。这意味着如果您有特殊要求,可以在自己的类中实现自己的doNotUnderstand:消息。

答案 1 :(得分:3)

如果我这样做,我会得到一个调试器。标题是

MessageNotUnderstood: ThreadSafeTranscript>>explode

当我选择第一个元素时,我会看到doesNotUnderstand:aMessage,其中aMessage是消息