2008-12-07 54 views
16

¿Existe la posibilidad de desactivar/activar todos los bloques try catch en todo el proyecto tan fácil como hacer clic en un botón?¿Cómo desactivar temporalmente todos los bloques try catch?

Entorno: VS 2008 con C# como idioma.

+0

¿Cuál es el propósito? ¿Por qué querrías hacer eso? – shahkalpesh

+9

¿Por qué están tan molestos con alguien que hace una pregunta?Si espera cinco minutos, verá si alguien obtiene una respuesta útil de la que no había anticipado. – DOK

Respuesta

15

No, no lo hay. ¿Por qué habría? ¿Qué estás intentando lograr?

Si desea romper tan pronto como se lanza un tipo particular de excepción, puede hacer que Visual Studio lo haga (Depurar -> Excepciones, seleccionar el tipo de excepción que le interesa y marcar el cuadro "Lanzado") Me resulta difícil pensar en alguna otra razón por la que desee desactivar el manejo de errores ...

EDITAR: Un punto que no había pensado antes - ¿qué versión de Visual Studio está utilizando? Si es Express, no estoy seguro de si esto es compatible. Puedo verificarlo, pero llevará un poco de tiempo. Avíseme si necesito ...

+0

Tengo una razón: Tengo una gran supresión de mensajes de error (el cliente es alérgico a todo tipo de página de error .net) y necesito depurar una página durante el desarrollo de una sección adicional un par de meses más tarde. – dvdmn

+0

Esto es probablemente un caso marginal, pero ahora estoy en una situación en la que tengo que desarrollar tanto en Excel 2007 como en 2013 en la misma base de código, lo que significa que tengo que usar VS2012. Eso también significa que mi depuración contra Excel 2013 tiene que ser con código compilado porque VS 2012 no se conectará a Excel 2013 para la depuración. Me encantaría desactivar rápidamente mis bloques de prueba/captura en este momento ... – squillman

+0

@squillman: No está del todo claro para mí qué tiene que ver "desarrollar contra Excel 2007 y 2013" al deshabilitar bloques de prueba/captura ... –

1

Si desea hacer en el IDE, Depurar -> Excepciones es el cuadro de diálogo donde puede solicitar al IDE que se rompa cuando se produce una excepción específica/categoría/todas.

27

Para capturar las excepciones en el momento que está tirado ("excepciones de primera oportunidad" en la jerga de Win32), vaya a depuración, excepciones ..., y marca la casilla Lanzado para Common Language Runtime Excepciones.

+3

Creo que esto es exactamente lo que OP quería lograr desactivando todas las capturas de prueba. – user1032613

+0

en VS Community 2015 esto se encuentra en Depurar> Windows> Configuración de excepciones – Bastiaan

0

Puede cambiar la forma en que Visual Studio se rompe cuando se produce una excepción. Por defecto, se rompe en excepciones no controladas. Si va al menú Depurar> Excepciones, puede desmarcar Excepciones de Common Language Runtime y realizar otros cambios en el comportamiento del IDE cuando se produzcan excepciones. Por ejemplo, puede hacer que se rompa solo con un tipo de excepción; hay una larga lista allí.

He hecho esto en raras ocasiones cuando intento depurar.

3

Lo necesito cuando se depura. No quiero que el bloque catch maneje la excepción, pero VS se rompe en el código como si el bloque try catch no estuviera allí. Por el momento, comento los bloques de captura de prueba, pero lleva mucho tiempo.

Lo siento si no estaba lo suficientemente claro antes, espero que sea ahora.

estoy usando VS 2008 Prof. Pensamiento

0

de esto hoy y se encontró una otra solución. La ventaja de esto es que el IDE se detendrá en el punto exacto de la excepción existente.

En algún lugar globaly define:

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

Al comienzo de cada archivo de código fuente:

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

Uso:

'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 

divertirse con él, Saludos, Ted