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

    [VB.NET] Gestione degli errori

    ho un piccolo problemino con un programmino in VB.
    Praticamente ho una textbox dove all'interno devo insereri un valore numerico, e fin qui nessun problema.
    Il numero che devo inserire non deve essere negativo, non deve essere nullo, ne tanto meno deve essere una stringa.

    Per quanto riguarda la verifica se il numero è nullo (nel senso che non è stato inserito) ho scritto questo codice:

    codice:
    dim numero as double
    numero = Convert.ToDouble(textbox1.Text)
    if numero = ""  Then
    Msgbox (" Errore")
    End if
    Mentre se è negativo

    codice:
    dim numero as double
    numero = Convert.ToDouble(textbox1.Text)
    if numero < 0 then
    Msgbox (" Errore")
    End if

    Mi è stato suggerito di mettere Convert.ToDouble(textbox1.Text) in un try/catch

    pertanto:

    codice:
    dim numero as double
    Try
          numero = Convert.ToDouble(textbox1.Text)
    If numero < 0 Then
          Msgbox ("Il numero deve essere maggiore di zero!")
    Else
          Msgbox ("Tutto ok!")
    Catch ex As Exception
          Msgbox ("Devi inserire un numero!")
    End Try

    Adesso io vorrei che in quest'ultimo codice non eseguisse la msgbox che indico:

    codice:
    dim numero as double
    Try
          numero = Convert.ToDouble(textbox1.Text)
    If numero < 0 Then
          Msgbox ("Il numero deve essere maggiore di zero!")
    Else
          Msgbox ("Tutto ok!")  <---- non deve visualizzarlo
    Catch ex As Exception
          Msgbox ("Devi inserire un numero!")
    End Try
    Come si può vedere nel codice (il mio commento :P) vorrei che non visualizzasse
    il messaggio però se lo tolgo non esegue poi l'operazione.
    facendo finta che sotto magari fa delle operazioni con numero... se tolgo la msgbox non me le esegue.
    Consigli ??

  2. #2
    Nel codice che citi manca un End If... se non lo inserisci (oltre a scrivere codice errato) non si capisce qual è esattamente il flusso del programma. In secondo luogo non riesco a capire il problema: togli la MsgBox (che tra l'altro in VB.NET dovrebbe essere MessageBox.Show ) ed inserisci il codice che deve lavorare con il numero (ovviamente seguito dall'End If).
    codice:
    Dim numero As Double
    Try
          numero = Convert.ToDouble(textbox1.Text)
    If numero < 0 Then
          MessageBox.Show("Il numero deve essere maggiore di zero!")
    Else
          TuaFunzione(numero) 'ad esempio
    End If
    Catch ex As Exception
          MessageBox.Show("Devi inserire un numero!")
    End Try
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    ho provato ad inserire al posto della msgbox il codice relativo all'operazione... ma così facendo non lo esegue

  4. #4
    Hai messo l'End If dove l'ho messo io?
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    si MItaly... ho messo l'end if come mi dicevi te (anche perchè altrimenti non sarebbe partito)
    Cmq allo stato attuale è come prima

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.