Vb.net: exception = nothing

giovedì 15 gennaio 2009 - 17.04

platinette Profilo | Newbie

Salve a tutti,
ho un problema con visual basic .net, quando valuta una condizione booleana(un if puro e semplice) all'interno di un blocco try...catch mi da eccezione, e l'eccezione è nothing! ho provato a fare altre classi, a riavviare .net, a spezzare il codice ma niente...quando arriva a valutare la condizione dell'if mi cattura l'eccezione 'nothing'.
P.S. è la prima volta che succede una cosa del genere, è un programma testato e funzionante in tutti gli altri punti del codice(che sono molti) che comprendono IF...

grazie anticipatamente all'anima buona che mi puo' rispondere!

aiedail92 Profilo | Expert

Ciao

Forse se posti il codice che genera l'errore, possiamo fare qualcosa per capire il problema...

Luca

platinette Profilo | Newbie

si hai ragione:

Private Sub InsertNotRecursive2(ByVal PercorsoVoceCM As ArrayList, _
ByVal indice As Integer, _
ByVal DataInizioAAAAMMGG As String)
'
Dim cnt As Integer
Dim Codice As String
Dim Descrizione As String
Dim pos As Integer
'
Try

If indice > 0 Then

For cnt = indice - 1 To 0 Step -1

........

Next

End If

Catch ex As Exception
Throw New Exception(ex.Message & " -> " & "Eccezione sollevata in InsertNotRecursive")
End Try
End Sub


Il debugger arriva a valutare indice > 0 e cattura subito un'eccezione spostandosi su Throw New Exception(ex.Message & " -> " & "Eccezione sollevata in InsertNotRecursive") ed ex=Nothing.

L.


L@.

aiedail92 Profilo | Expert

Provandola così non mi genera nessuna eccezione, forse il problema è nei parametri che passi... È possibile avere anche il codice che chiama la funzione e/o i valori dei parametri che passi?

Luca

platinette Profilo | Newbie

sql = ...
'
x_SqlDataReader = FrONE.BP.Data.SQL.GetRecords(SYSEDI.StringaConnessione, sql)
'
Try
'
ctr = 0
'
While x_SqlDataReader.Read
'
If ... Then
'
.....
'
objGantt.InsertNotRecursive(m_PercorsoVoceCM, _
DataRiferimentoInizioNuoveVociAAAAMMGG)
'
....
'
End If
'
End While
'
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
x_SqlDataReader.Close()
End Try
...

Public Sub InsertNotRecursive(ByVal PercorsoVoceCM As ArrayList, _
ByVal DataInizioAAAAMMGG As String)
'
....
Try
'
....
'
Try
InsertNotRecursive2(PercorsoVoceCM, indice, DataInizioAAAAMMGG)
'
Catch ex As Exception
Throw New Exception(ex.Message)
End Try

Catch ex As Exception
Throw New Exception(ex.Message)
End Try
End Sub
......


La presenza di tutti questi costrutti try..catch è motivata dal fatto che ho provato in tutti i modi a catturare l'eventuale eccezione per ogni istruzione/chiamata ma non c'è stato verso nonostante le variabili venissero valorizzate correttamente seguendo la finestra del controllo immediato

Personalmente è la prima volta che vedo un fenomeno del genere considerando anche che nel resto del progetto i costrutti sono analoghi a quelli ripoprtati qui




L@.

aiedail92 Profilo | Expert

La faccenda mi pare molto strana, ma forse ho capito male io... La variabile ex vale Nothing oppure il messaggio?

Perchè anche provando a generare un'eccezione Nothing, viene automaticamente lanciata una NullReferenceException che la sostitusice.

Prova a mettere un

If ex Is Nothing MsgBox("È proprio nothing!") End If

E dimmi se appare effettivamente il messaggio.

Luca

platinette Profilo | Newbie

Ciao,
la variabile ex è Nothing nel momento in cui viene sollevata l'eccezione, non la assegno io...
L@.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5