Мои действия время от времени генерируют исключения во время выполнения, поэтому я реализовал методы с ошибкой Activity<TInstance>
, чтобы справиться с этим, отбросив изменения, внесенные в метод Execute
. Я подумал, что в Automatonymous есть какая-то проводка, которая делает так, что метод Faaled выполняется, когда метод Execute
генерирует исключение, а затем вызывает методы Faailed для действий, которые уже были выполнены. Оказывается, такого нет, так как мои методы с ошибкой никогда не выполняются.
Должен ли я вместо этого вызывать их сам в блоке try / catch? Я мог бы создать BehaviorExceptionContextProxy
на основе BehaviorContext
и сгенерированного исключения. Единственным следующим Behavior
, который я мог бы передать, будет тот, который вставлен в этот Activity
метод Execute
, но логически это означает, что я компенсирую в неправильном направлении, поскольку следующий Behavior
фактически должен быть выполнен после того, как этот будет успешным, поэтому я бы тоже компенсировал много.
Я также попытался использовать Catch
в конечном автомате, который обрабатывает исключение, однако я не смог найти никакого способа запустить выполнение потока компенсации для действия, которое не удалось, когда у меня есть только ExceptionActivityBinder
.
Есть ли хороший способ запустить компенсационный поток деятельности?