如何查找MessageNotUnderstood消息链

时间:2014-07-20 10:29:26

标签: smalltalk pharo

从我之前的例子开始跟进

How to find which was the wrong message in a Message Not Understood message?

让我们说代码现在就是这个

Transcript explode implode andBecomeNuclear.

Pharo将在这种情况下发送3个MNU:1)爆炸2)内爆3)并成为核心

覆盖doesNotUnderstand:在这里没有用,因为我想要完整的消息链。这意味着我希望它不仅给我一条消息,而且给所有3条消息,直到它找到结束pharo命令的时间段。

我是怎么做到的?

1 个答案:

答案 0 :(得分:4)

首先,Pharo不会发送3条消息。按照优先顺序,它将发送explode,然后使用DNU停止,或将implode发送给返回的对象。您可以做的是以一种将消息存储在队列中并返回self的方式定义DNU。我不知道如何在语句的最后检索所有链。最简单的方法是定义一些消息,如chain,它将返回整个队列。