Я знаю из документации MOOC , что можно иметь один и тот же обработчик для нескольких исключений, которые могут возникать во время какого-то блока, например ::100100
[ do some work ]
on: ZeroDivide, Warning
do: [ :ex | what you want ]
В том же документе есть пример с ensure
, чтобы убедиться, что код всегда выполняется (несмотря на любые исключения):
[ doSomething ] ensure: [ alwaysExecuteThis ]
Однако я бы хотел что-то вроде:
[ do some work ]
on: ZeroDivide
do: [ :zeroDivide | handle it ]
on: Warning
do: [ :warning | handle it ]
ensure: [ alwaysExecuteThis ]
По общему признанию, это мой опыт Java, влияющий на то, как я хочу использовать Pharo.