Есть ли возможность деактивировать/активировать все блоки захвата try во всем проекте так же просто, как нажать кнопку?
Окружающая среда: VS 2008 с языком С#.
Есть ли возможность деактивировать/активировать все блоки захвата try во всем проекте так же просто, как нажать кнопку?
Окружающая среда: VS 2008 с языком С#.
Чтобы уловить исключения в момент их выброса ( "исключение с первого раза" в языке Win32), перейдите в Отладка, Исключения... и проверьте box Thrown для Исключения для обычного языка Runtime.
Нет, нет. Зачем это было? Чего вы пытаетесь достичь?
Если вы хотите сломать, как только будет создан конкретный тип исключения, вы можете заставить Visual Studio сделать это (Debug → Exceptions, выберите тип исключения, который вам интересен, и установите флажок "Брошенный" ), Мне трудно думать о какой-либо другой причине, почему вы хотите отключить обработку ошибок...
EDIT: Одна точка, о которой я раньше не думал, - какую версию Visual Studio вы используете? Если это Express, я не уверен, поддерживается ли это - я могу проверить, но это займет немного времени. Дайте мне знать, если мне нужно...
Мне нужно это при отладке. Я не хочу, чтобы блок catch обрабатывал исключение, но VS разбивается на код, как будто блок catch try не существует. На данный момент я комментирую блок catch try, но он длится долго.
Извините, если раньше не было достаточно ясно, я надеюсь, что это сейчас.
Я использую VS 2008 Prof.
Если вы хотите сделать в среде IDE, Debug → Exceptions - это диалоговое окно, в котором вы можете попросить IDE сломаться, когда выбрано конкретное/категория/все исключения.
Вы можете изменить способ разрыва Visual Studio при возникновении исключения. По умолчанию он прерывает необработанные исключения. Если вы перейдете в меню "Отладка" > "Исключения", вы можете снять отметки "Исключения общего языка" и внести другие изменения в поведение среды IDE при возникновении исключений. Например, вы можете разбить его только на один вид исключения; там есть длинный список.
Я делал это в редких случаях при попытке отладки.
Мысли об этом сегодня и нашли другое решение. Преимущество этого заключается в том, что среда 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
Получайте удовольствие от этого, Приветствую, Тед