Подтвердить что ты не робот

Как временно отключить все блоки захвата try?

Есть ли возможность деактивировать/активировать все блоки захвата try во всем проекте так же просто, как нажать кнопку?

Окружающая среда: VS 2008 с языком С#.

4b9b3361

Ответ 1

Чтобы уловить исключения в момент их выброса ( "исключение с первого раза" в языке Win32), перейдите в Отладка, Исключения... и проверьте box Thrown для Исключения для обычного языка Runtime.

Ответ 2

Нет, нет. Зачем это было? Чего вы пытаетесь достичь?

Если вы хотите сломать, как только будет создан конкретный тип исключения, вы можете заставить Visual Studio сделать это (Debug → Exceptions, выберите тип исключения, который вам интересен, и установите флажок "Брошенный" ), Мне трудно думать о какой-либо другой причине, почему вы хотите отключить обработку ошибок...

EDIT: Одна точка, о которой я раньше не думал, - какую версию Visual Studio вы используете? Если это Express, я не уверен, поддерживается ли это - я могу проверить, но это займет немного времени. Дайте мне знать, если мне нужно...

Ответ 3

Мне нужно это при отладке. Я не хочу, чтобы блок catch обрабатывал исключение, но VS разбивается на код, как будто блок catch try не существует. На данный момент я комментирую блок catch try, но он длится долго.

Извините, если раньше не было достаточно ясно, я надеюсь, что это сейчас.

Я использую VS 2008 Prof.

Ответ 4

Если вы хотите сделать в среде IDE, Debug → Exceptions - это диалоговое окно, в котором вы можете попросить IDE сломаться, когда выбрано конкретное/категория/все исключения.

Ответ 5

Вы можете изменить способ разрыва Visual Studio при возникновении исключения. По умолчанию он прерывает необработанные исключения. Если вы перейдете в меню "Отладка" > "Исключения", вы можете снять отметки "Исключения общего языка" и внести другие изменения в поведение среды IDE при возникновении исключений. Например, вы можете разбить его только на один вид исключения; там есть длинный список.

Я делал это в редких случаях при попытке отладки.

Ответ 6

Мысли об этом сегодня и нашли другое решение. Преимущество этого заключается в том, что среда IDE остановится в точном месте происходящего исключения.

Где-то определено глобальное определение:

Namespace Global.System
  Public Class NeverOccurException
    Inherits Exception
  End Class
End Namespace

В начале каждого файла исходного кода:

#If DEBUG
  Imports CatchAtReleaseException = System.NeverOccurException
#Else
  Imports CatchAtReleaseException = System.Exception
#End If

Использование:

  'Compiled in DEBUG-Mode the TryCatch is "disabled", because the
  'the ALIAS CatchAtReleaseException is set to "NeverOccurException"

  'Compiled as RELEASE the TryCatch is "enabled", because the ALIAS
  'is set to the regular "System.Exception"

  Public Sub SampleSub()
    Try
      '...
    Catch ex As CatchAtReleaseException
    End Try
  End Sub

Получайте удовольствие от этого, Приветствую, Тед