Идея сделать почти одинаковую работу в catch и наконец (C # 3.0) - PullRequest
0 голосов
/ 13 мая 2010

У меня есть требование.

Я обрабатываю некоторые файлы, и после того, как обработка завершена, я архивирую эти файлы в папку архива с добавленной отметкой времени.

Архивирование и установка метки времени, которую я делаю в блоке «Наконец». Теперь появилось новое требование, когда мне нужно отправить письмо, если что-то не так в исходных файлах, а затем мне нужно архивировать то же самое. Теперь этот фрагмент кода мне нужно обработать в блоке catch.

Но если я напишу код целиком в блоке catch, он сработает только в случае исключения; в противном случае нет.

Так что в основном я пишу один и тот же кусок кода как в блоке catch, так и в блоке finally.

Какой стандартный и рекомендуемый подход, по вашему мнению, будет лучше в этом случае?

Я использую C # 3.0

Спасибо.

1 Ответ

0 голосов
/ 13 мая 2010

Блок finally действительно для кода, который «всегда» должен выполняться, даже после исключения. Обычно это означает код типа очистки. Это «запах кода», чтобы увидеть код типа обработки в блоке finally.

Возможно, вы можете опубликовать свой код, и мы можем предложить вам лучший способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...