Smalltalk 在处理断言失败消息之前捕获它

Smalltalk 在处理断言失败消息之前捕获它,smalltalk,squeak,Smalltalk,Squeak,我知道如何引发异常以及如何处理它,但假设我有以下方法: method1:arg AssertionFailure signal:'rescue error comment'. 我想捕获此异常并使用另一种格式创建新的断言失败异常。但是,我需要获取该消息(“rescue error comment”)并在我的新异常中使用它。。这就是我不知道该怎么做的地方 那么,在使用 on: AssertionFailure do: 任用 on: AssertionFailure do: [ :e |

我知道如何引发异常以及如何处理它,但假设我有以下方法:

method1:arg
AssertionFailure signal:'rescue error comment'.
我想捕获此异常并使用另一种格式创建新的断言失败异常。但是,我需要获取该消息(“rescue error comment”)并在我的新异常中使用它。。这就是我不知道该怎么做的地方

那么,在使用

   on: AssertionFailure  do:
任用

on: AssertionFailure do: [ :e | NewAssertionFailure signal: e messageText ]
或者将方法定义为

method1:arg
    NewAssertionFailure signal: 'rescue error comment'

我不太明白你的问题。您有一个错误,您可以通过
#on:do:
捕获它,为什么要在中间的某个位置更改它?为什么你不发一些与断言失败不同的信号呢?你为什么不发出你想要的信号呢?是的,这可能看起来有点奇怪。。但是我的新断言失败有不同的格式。。我只需要找到一种保存信号信息的方法。。有什么办法吗?要么你在:断言失败上执行
,[:e | NewAssertionFailure signal:e messageText]
要么你直接在
方法1:arg
中执行
NewAssertionFailure signal:e messageText
。如果你能告诉我这两个选项为什么不好,也许我能找出哪个解决方案是好的。不,这是完美的。。我已经在:AssertionFailure do:[:e | NewAssertionFailure signal:e messageText]上使用过,它可以工作。。这就是我想要的:-)你是最好的,欢迎你回答