Pregunta

"he estado corriendo a través de la ayuda de MSDN documentos para obtener un bloqueo de Visual Basic.Después de probar el ejemplo el uso de temporizadores --uno arrastra una etiqueta y un componente timer en el diseñador y añade lo siguiente a los componentes de la subrutina

Label1.Text = My.Computer.Clock.LocalTime.ToLongTimeString

La salida inmediata de la ventana durante la depuración es el siguiente

Una excepción de primera oportunidad de tipo 'Sistema.InvalidCastException' se produjo en Microsoft.VisualBasic.dll
Un primer oportunidad excepción de tipo 'Sistema.InvalidCastException' se produjo en Microsoft.VisualBasic.dll

El mismo error se produce en un anterior MSDN ejemplo mediante un menú contextual del componente.Debo Try...Catch...Finally este error y tratar de hacer avanzar?O, estoy lidiando con algo mucho más serio?

¿Fue útil?

Solución

Cuando vea algo sobre una excepción de primera oportunidad, sólo significa que una excepción fue capturado dentro del código que llama pero no necesariamente significa que el código falló. Si el código se ejecuta sin causar el programa se bloquee y devuelve un valor válido, entonces no tienen un problema. También verá una salida en la ventana de depuración acerca de excepciones de primera oportunidad al implementar sus propios bloques try / catch.

Otros consejos

En el menú Depurar -> Excepciones, puede activar el depurador se detenga cuando una excepción es lanzada primero, aunque sería atrapado tarde; si usted quiere saber lo que está pasando, esta es la manera más fácil de hacerlo

En la excepción de primera oportunidad de examinar los detalles de la excepción. Debería ver una propiedad pila marco / rastro. En no debería ver qué línea se produce el error en. Esto debería ayudarle.

En el IDE de tratar de ir a Herramientas > Opciones > Proyectos y Soluciones > VB valores por defecto y la configuración de Option Strict 'On' - esto puede ayudar a detectar problemas de fundición cuando se compila el proyecto en lugar de cuando se ejecuta.

Una primera oportunidad execption' no necesariamente significa que usted tiene un problema en el código.Podría significar el IDE o el compilador o cualquier otro componente detectado y manejado un error y en el proceso el depurador es notificado y la excepción es la de ser reportado inmediatamente a la ventana.Este es un excelente post sobre el tema:

http://blogs.msdn.com/davidklinems/archive/2005/07/12/438061.aspx

Una solución rápida y fácil para depurar y diag de Excepción de primera oportunidad es:

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

y

private void CurrentDomainOnFirstChanceException(object sender, FirstChanceExceptionEventArgs firstChanceExceptionEventArgs)
    {
        if (firstChanceExceptionEventArgs.Exception is NullReferenceException)
        {
            // do your handling and debugging :)
        }
    }

múltiple Excepción de primera oportunidad durante el tiempo de ejecución puede paralizar el funcionamiento de su aplicación, ya que el manejo de excepciones es caro. Especialmente en aplicaciones web. Puede añadir este controlador y mirar excepciones específicas primera oportunidad y tratar de evitar / corregirlos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top