16 messaggi dal 28 marzo 2011
buongiorno a tutti,
sto perfezionando un programma che ho appena scritto e vorrei gestire alcuni errori. In particolare vorrei che ad un determinato errore, il programma faccia un determinato processo. Ho un TextBox apposito che mi segnala se l'operazione ha avuto successo oppure se si e' verificato un errore. Ho provato questo:
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        If TextBox1.Text = "Conversion from string "" to type 'Double' is not valid." Then
            My.Computer.FileSystem.DeleteFile(tbSearch.Text.Split(".")(0) & "-CSV.csv")
            MessageBox.Show("ERROR")
        End If
    End Sub

Ma ovviamente mi sfugge qualcosa... nemmeno il messagebox si presenta. Invece se tolgo l'if, compare il messagebox, ma.... mi cancella pure il file, qualunque cosa succeda...
Qualche consiglio di come procedere?

grazie
Manuel
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, metti un breakpoint sull'IF e vedi che cosa vale TextBox1.Text. E' probabile che il suo valore non sia identico a quello che ti aspetti. Per questo motivo, l'espressione dell'if restituisce false e il codice contenuto al suo interno non viene eseguito.

Comunque... perché non mettere l'istruzione che rimuove il file direttamente nel Try...Catch che ti cattura l'eccezione?

Enjoy learning and just keep making
16 messaggi dal 28 marzo 2011
Sono riuscito a risolvere inserendo questo codice:
        Catch ex As System.InvalidCastException
            TextBox1.Text = "Conversion from string "" to type 'Double' is not valid."
            My.Computer.FileSystem.DeleteFile(tbSearch.Text.Split(".")(0) & "-CSV.csv")
        Catch ex As Exception
            Dim ts As Thread = New Thread(AddressOf Me.Process)
            ts.Abort()
            TextBox1.Text = ex.Message

Il punto e' che avevo gia' provato ad usare il try/catch, ma non ha avuto successo e avevo pensato ad una alternativa, poi mi sono accorto dell'errore (stupido). Inizialmente non mi funzionava perrche' avevo messo "Catch ex As Exception" prima del "Catch ex As System.InvalidCastException"; appena gli ho invertiti, ha incominciato a funzionare a dovere.
Grazie,
Manuel

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.