Visual Studio игнорировать try catch - только отладка - PullRequest
5 голосов
/ 11 марта 2010

Я думаю, что обработка ошибок - хорошая идея. :) При отладке это может помешать - особенно с приятными сообщениями. В VB6 я мог просто установить флажок для компилятора, чтобы игнорировать мою обработку ошибок. Я нашел диалоговое окно, которое позволяет мне делать что-то подобное в VS, но вместо одного - около 10 000 флажков - это слишком много, чтобы менять каждый раз, когда я хочу получить производственную компиляцию.

Есть ли способ настроить VS, чтобы, когда я нахожусь в режиме отладки, я получал один набор условий, а когда я работал, я получал другой? ... или есть еще один способ более эффективной обработки ошибок и отладки?

Спасибо

Ответы [ 3 ]

3 голосов
/ 11 марта 2010

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

2 голосов
/ 11 марта 2010

В коде я бы, наверное, просто сделал что-то вроде:

#if !DEBUG
    try {
#endif
        DoSomething();
#if !DEBUG
    } catch (Exception ex) {
        LogEx(ex);
        throw new FriendlyException(ex);
    }
#endif

Или. в целом и с меньшими затратами #if:

#if DEBUG
   public const bool DEBUG = true;
#else
   public const bool DEBUG = false;
#endif

try {
   DoSomething();
} catch (Exception ex) {
   if (DEBUG) throw;
   LogEx(ex);
   throw new FriendlyException(ex);
}

Или общего назначения (например, библиотека обработки исключений из P & P):

bool HandleException(Exception ex) {
    return !DEBUG;
}

Но, если ваша настоящая проблема - это только графический интерфейс Visual Studio - просто используйте макрос .

1 голос
/ 11 марта 2010

Вы можете добавить этот атрибут в ваши методы:

[Conditional("DEBUG")]

Вы также можете использовать операторы #if #endif, если хотите.

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