Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB2010] Eccezione first-chance di tipo 'System.InvalidOperationException'

    Nel popolare alcuni dati di una DataRow

    codice:
    Dim FoundRow As DataRow
    FoundRow = dt.Rows.Find(Data0)
    
    If FoundRow Is Nothing Then
          Debug.Print("Inserisco un nuovo record")
          Dim NewHHRow As DataRow = dt.NewRow()
          Debug.Print (Data0.ToString)
          NewHHRow(0) = Data0
          Debug.Print (Data1.ToString)
          NewHHRow(1) = Data1
          .............. etc etc
    
          Debug.Print ("Aggiungo nuova riga")
          dt.Rows.Add(NewHHRow)
          da.Update(ds, Tabella)
    nella finestra di controllo immediato compare una riga:

    Eccezione first-chance di tipo 'System.InvalidOperationException' in System.dll (nessun messaggio ulteriore)

    Il dati non sono Null, perché controllo con un Debug.Print prima di inserirli.

    Tutto codice è inserito in un Try... Catch...

    codice:
      Catch inv As InvalidOperationException
                MessageBox.Show("Errore: " & inv.ToString)
      Catch ex As Exception
                MessageBox.Show(Errore: " & ex.ToString)
    La cosa strana è che il database si aggiorna assolutamente regolarmente e che la eccezione non viene rilevata, nel senso che il codice Catch non viene eseguito: se in Debug non dessi una occhiata alla finestra di controllo immediato non mi accorgerei di nulla.

    Domanda: come capire che cosa genera la eccezione e perché non viene rilevata dal Try... Catch? Se potessi arrivare al Catch saprei qualcosa di più...

  2. #2
    Non te ne devi preoccupare; se vedi solo un messaggio di eccezione first-chance significa che da qualche parte è stata sollevata un'eccezione, ma è stata catturata e adeguatamente gestita. In altri termini, qualche pezzo del .NET Framework ha effettivamente sollevato un'eccezione, ma doveva trattarsi di qualcosa di atteso, dato che l'eccezione non si è propagata fino al tuo codice ma è stata gestita (senza generare altri errori) all'interno del .NET Framework stesso.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.