Если вы работаете с рабочими процессами конечного автомата, моя методика устранения ошибок, для устранения которых требуется вмешательство человека, заключается в создании дополнительного узла 'stateacctivity', который указывает состояние 'error', что-то вроде STATE_FAULTED
. Затем каждое состояние имеет обработчик ошибок, который перехватывает любое исключение, регистрирует исключение и изменяет состояние на STATE_FAULTED
, передавая информацию, такую как текущее действие, тип возникшего исключения и любую другую контекстную информацию, которая может вам понадобиться.
При инициализации STATE_FAULTED вы можете прослушивать внешнюю команду (вашу команду Resume () или любую другую, соответствующую вашим потребностям), а когда все в порядке, вы можете просто переключиться в предыдущее состояние и возобновить выполнение.