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

    [VB.NET] Gestire tutti gli errori in un'unica funzione

    Ciao, sto lavorando a un grosso progetto, che contiene molti form con moltissime sub e function.
    Se dovessi gestire gli errori in ogni singola sub mi ci vorrebbe una vita a scrivere ogni volta

    On Error GoTo errore

    ......

    errore:
    If Err.Number <> 0 Then
    MsgBox("Si è verificato il seguente errore:" & vbCrLf & Err.Description & "", MsgBoxStyle.Critical)
    End If

    Non c'è un modo per gestire l'errore con un semplice messagebox a livello di progetto o al massimo a livello di form piuttosto che doverlo specificare in ogni sub o function??
    Grazie
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  2. #2
    In primo luogo in VB.NET non bisogna usare l'On Error Goto, ma piuttosto la nuova gestione degli errori strutturata basata su Try ... Catch ... Finally. In secondo luogo, è possibile fare quello che chiedi (ci sono più modi), ma mi pare poco sensato dal punto di vista pratico, anche perché una volta intercettato l'errore non si potrebbe più riprendere dal punto dove si è verificato.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Lo so che non potrei gestire l'errore, ma essendo un applicazione che si deve connettere a un db mysql remoto l'errore più frequente è di sicuro l'assenza della connessione ad internet, quindi dovrei svolgere sempre la stessa operazione, cioè mostrare il msgbox di errore ed interrompere la query...

    Per quanto riguarda i nuovi metodi di gestione degli errori in .NET non ne ero a conoscenza... sai dove posso trovare una buona documentazione??
    Grazie
    http://www.firesoftweb.it - Servizi gratuiti per il tuo sito web: forum, guestbook, contatori visite...

  4. #4
    Originariamente inviato da dado86ssj
    Lo so che non potrei gestire l'errore, ma essendo un applicazione che si deve connettere a un db mysql remoto l'errore più frequente è di sicuro l'assenza della connessione ad internet, quindi dovrei svolgere sempre la stessa operazione, cioè mostrare il msgbox di errore ed interrompere la query...
    Crea una funzione (o una classe) che crea la connessione e restituisce l'oggetto-connessione se riesce a connettersi e visualizza un messaggio di errore se non ci riesce (e restituisce Nothing); richiama tale funzione ogni volta che ti serve di connetterti al DB.
    Per quanto riguarda i nuovi metodi di gestione degli errori in .NET non ne ero a conoscenza... sai dove posso trovare una buona documentazione??
    Grazie
    MSDN
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da dado86ssj
    Lo so che non potrei gestire l'errore, ma essendo un applicazione che si deve connettere a un db mysql remoto l'errore più frequente è di sicuro l'assenza della connessione ad internet, quindi dovrei svolgere sempre la stessa operazione, cioè mostrare il msgbox di errore ed interrompere la query...
    Con il meccanismo delle eccezioni, non hai bisogno di interrompere la query: quando si verifica un errore che solleva un'eccezione, la routine si interrompe - e questo vale per l'intero stack delle chiamate - fino a quando non viene individuato un "gestore" in grado di farsi carico dell'errore.

    Originariamente inviato da dado86ssj
    Per quanto riguarda i nuovi metodi di gestione degli errori in .NET non ne ero a conoscenza... sai dove posso trovare una buona documentazione??
    Fai riferimento alla Microsoft .NET SDK Documentation.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.