2 जवाब

सबसे बढ़िया उत्तर

नेस्टेड का उपयोग करके ऐसा लगता है कि यह संभव है ब्लॉक:

[ [ [ [ doSomething here ]
    on: ZeroDivide
    do: [ :zeroEx | 'zeroExc' crLog ] ]
    on: Warning
    do: [ :warning | 'warning' crLog ] ]
    ensure: [ 'ensure' crLog ] ]
1
Fuhrmanator 17 जून 2019, 18:45

इस विधि को BlockClosure में जोड़ने का प्रयास करें:

on: exception1
do: block1
on: exception2
do: block2
  ^self on: exception1 , exception2 do: [:ex |
    (exception1 handles: ex)
      ifTrue: [block1 value: ex]
      ifFalse: [block2 value: ex]]

ध्यान दें कि exception1 और exception2, Exception के उपवर्ग हो सकते हैं या ExceptionSet के उदाहरण (#, के साथ निर्मित) हो सकते हैं।

1
Leandro Caniglia 17 जून 2019, 19:13