我想确保评估aBlock仅引发SomeCustomError类型的错误。有没有比使用isKindOf:更好的方法?

aBlock
  on: Core.Error
  do: [:ex |
       (ex isKindOf: SomeCustomError)
         ifTrue: [ex pass]
         ifFalse: [(SomeCustomError identification: #generalError messageText: ex messageText) raise]]

最佳答案

另一种方法-在类上定义方法是MyTerribleException 异​​常,它应该返回。在您的 CustomException 类上,通过返回来定义重新定义方法true

aBlock
  on: Core.Error
  do: [:ex |
       (ex isMyTerribleException)
         ifTrue: [ex pass]
         ifFalse: [(SomeCustomError identification: #generalError messageText: ex     messageText) raise]]

这样会更好,因为您可以引入新的Exception类,必须对其进行捕获

关于error-handling - 解除信号异常的异常,除非它们是某种类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20123243/

10-10 12:32