Domanda

sono già stati che attraversa i Documenti di aiuto MSDN per ottenere un blocco di Visual Basic. Dopo aver provato l'esempio utilizzando i timer --one trascina un componente etichetta e timer nel progettista e aggiunge quanto segue alla subroutine componenti

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

L'uscita per la finestra immediata durante il debug è la seguente

  

Una prima eccezione di possibilità di tipo   'System.InvalidCastException' verificato   in Microsoft.VisualBasic.dll   
  Un primo   eccezione di possibilità di tipo   'System.InvalidCastException' verificato   in Microsoft.VisualBasic.dll

Lo stesso errore si verifica su un precedente esempio MSDN utilizzando un componente menu contestuale. Dovrei Try...Catch...Finally questo errore e cercare di andare avanti? Oppure, sono io che fare con qualcosa di molto più serio?

È stato utile?

Soluzione

Quando si vede qualcosa su una prima eccezione di possibilità, significa solo che l'eccezione è stato catturato all'interno del codice che hai chiamato, ma non significa necessariamente che il codice non è riuscita. Se il codice viene eseguito senza causare il programma di crash e restituisce un valore valido, allora non avere un problema. Si vedrà anche l'uscita nella finestra di debug su prime eccezioni di possibilità quando si implementa il proprio blocchi try / catch.

Altri suggerimenti

Nel menu Debug -> eccezioni, è possibile abilitare il debugger di fermarsi quando un'eccezione viene lanciata prima, anche se sarebbe stato catturato in seguito; se si vuole scoprire cosa sta accadendo, questo è il modo più semplice per farlo

Nella prima eccezione di possibilità di esaminare i dettagli di eccezione. Si dovrebbe vedere una proprietà dello stack frame / traccia. In ci si dovrebbe vedere quale linea l'errore si verifica. Questo dovrebbe aiutare.

Nel IDE provare ad andare in Strumenti> Opzioni> Progetti e soluzioni> Impostazioni predefinite VB e l'impostazione Option Strict su 'On' - questo può aiutare problemi cattura di fusione quando si compila il progetto, piuttosto che quando lo si esegue

.

A 'prima occasione execption' non significa necessariamente che hai un problema nel codice. Potrebbe significare l'IDE o il compilatore o qualsiasi altro componente coinvolto incontrati e gestite un errore e nel processo di debugger viene notificato e l'eccezione sono stati segnalati alla finestra immediata. Si tratta di un ottimo post sul tema:

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

Una soluzione rapida e facile per eseguire il debug e diag di primo eccezione di possibilità è:

AppDomain.CurrentDomain.FirstChanceException += CurrentDomainOnFirstChanceException;

e quindi

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

Multiple Eccezione prima occasione durante il runtime può paralizzare le prestazioni della vostra applicazione, perché la gestione delle eccezioni è costoso. Soprattutto in applicazioni web. È possibile aggiungere questo gestore e guardare specifiche eccezioni prima occasione e cercate di evitare / correggerli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top