2009-10-30 2 views
2

Я обрабатываю исключение в FaultActivityHandler, в конце которого я хочу закончить рабочий процесс. С этой целью я добавил TerminateActivity для обработчика ошибок. Похоже, это приводит к сбою рабочего процесса. Есть ли лучший способ сделать это? Я мог бы использовать if-else, чтобы проверить флаг ошибки, но в итоге у него будет много вложенных if-else, где правая сторона ничего не сделает, кроме как пропустить до конца рабочего процесса.Рабочий процесс Windows - TerminateActivity приводит к сбою рабочего процесса?

У меня отсутствует очевидный способ закончить рабочий процесс изящно или должен Это ошибка, когда я заканчиваю его из-за исключения?

ответ

1

Я думаю, что проще всего добавить ThrowActivity с некоторым специальным исключением и поймать это настраиваемое исключение на уровне рабочего процесса. Таким образом, рабочий процесс завершится нормально, но все остальные действия будут пропущены.

+0

Думаю, я не думаю о том, как это делается для WF. Мне кажется, что конечная точка в рабочем процессе - естественный способ справиться с этим, вместо того, чтобы бросать исключение (последнее из которых, кстати, очень медленное в моей системе dev). – Brian

+0

Вот почему вы не бросаете исключения вокруг, когда это не нужно. Но если есть непредвиденная проблема, и вы хотите прекратить обработку, это путь. И в обычном коде это ничем не отличается, иначе вы добавите много дополнительных тестов в свой код. – Maurice

+0

Мне кажется, что простая конечная точка будет более подходящей. Я уже поймал исключение и разобрался с ним, но рабочий процесс должен быть завершен. Вложения if-else утверждают, что это плохой способ сделать это, а также просто повторяет исключение. – Brian

Смежные вопросы