Newsgroup: it.comp.lang.visual-basic
Titolo: Gestire gli errori

Ciao a tutti
Volevo presentae il mio problema.
Ogni volta che in un mio programma c'č un errore di run time lui,
ovviamente, si chiude.
Voi mi direte: "Controlla gli errori!!!"
Io vi risponderň: "Certo č semplice basta fare una gestione di errore su
ogni sub routine!!!"
Siccome io sono un tipo pigro vorrei trovare un podo con cui inserendo la
riga on error goto .... in un solo punto, magari nella sub main, lui mi vada
in una sub di gestione degli errori anche se l'errore proviene da una sub di
una form qualsiasi.
E' possibile fare una cosa del genere?
Grazie a tutti
Ciao
~~~~~~~~~~~~~~~~
Andrea Fabbrucci
anfa...@tin.it
~~~~~~~~~~~~~~~~

 ha scritto nel messaggio
news:8W8y8.23239$8D3.6...@news1.tin.it...
La pigrizia č spesso fonte di disastri + o - colposi.
Il trap degli errori č pericoloso da fare anche perchč non tutti gli errori
sono intercettabili da VB...
quindi una buona regola sarebbe quella di fare
On error goto CheckErr
oppure
On error resume next
dove effettivamente serve...o in situazioni alquanto delicate...
MA
al termine dell'evento o della sequenza delicata
SI DOVREBBE
On Error Goto 0
per ripristinare la condizione normale di gestione degli errori
Certo anche a me nella foga di consegnare un lavoro ed essendo in ritardo
....l'ho farcito di On error resume next....ma č un Errore...che ho pagato
caro al primo errore che cmq č apparso...e che non sapevo da dove venisse!
Questo č il mio pensiero!
ciauz!pigrone!

 una form qualsiasi.
Anch'io sono un tipo pigro, e per questo ho installato gli MZ-Tools
(
www.mztools.com
) che danno un valido aiuto nella creazione di un progetto VB.
Una delle caratteristiche è quella di poter 'preconfezionare' una routine di
gestione di errori che, con un semplice click del mouse puoi aggiungere ad ogni
routine.
Ecco come ho scritto la routine di gestione errori che uso in quasi tutte le
routine 'critiche':
On Error GoTo NomeProcedura_Error
 'Corpo della procedura
NomeProcedura_Exit:
 On Error GoTo 0
 Exit Sub 'Oppure Exit Function
NomeProcedura_Error:
    Select Case Err.Number
        Case xx'Qui ci metto la gestione degli errori prevedibili
        Case Else
             MsgBox "Error " & Err.Number & " (" & Err.Description _
                & ") in procedure NomeProcedura of TipoModulo NomeModulo"
                If MsgBox("Modulo: NomeModulo" & vbCrLf _
                    & "Procedura: NomeProcedura()" & vbCrLf _
                    & "Errore: " & Err.Number & " (" & Err.Description _
                    & ")", vbRetryCancel + vbCritical) = vbRetry Then
                    Resume
                Else
                    Resume NomeProcedura_Exit
                End If
    End Select
Spero di esserti stato d'aiuto.
Ciao!
--
Esteban
Hosted by 
www.seber.it
(Remove nonspammare for reply)

 Io vi risponderò: "Certo è semplice basta fare una gestione di errore su


 (
www.mztools.com
) che danno un valido aiuto nella creazione di un progetto
VB.
Faccio anch'io cosě, ed č comodissimo :)
Per tutte le routines potenzialmente critiche per le quali perň non voglio
stare a sbattermi... 2 click e ho la sub a prova di imbecille :D
Io uso un template ancora piů semplice, anche se molto simile (il retry se
lo voglio lo gestisco a mano):
 On Error GoTo {PROCEDURE_NAME}_Error
 {PROCEDURE_BODY}
 On Error GoTo 0
 Exit {PROCEDURE_TYPE}
{PROCEDURE_NAME}_Error:
 MsgBox "Error " & Err.Number & ": " & Err.Description & vbCrLf & _
           vbCrLf & "Procedure: {MODULE_TYPE}
{MODULE_NAME}.{PROCEDURE_NAME}", _
           vbExclamation

 news:q_9y8.93447
Ehm, Esteban e Zanna, ho scaricato MZTools 3 per VB6 (ho VB6 SP5 su Win98
SE), ma non c'è verso, pur seguendo alla lettera le istruzioni, di
registrare la mztools3.dll. Mi dice "Failed" e ritorna un errore
...0x80004005, esattamente quello documentato nella sezione Setup dell'Help.
Ho provato in DOS, mettendo la DLL in System. Niente.
Ho VB6 in italiano, ma le note dicono che non ci sono problemi di
localizzazione.
Potete aiutarmi? Grazie.

 ...0x80004005, esattamente quello documentato nella sezione Setup
dell'Help.
Devi decomprimerlo in una cartella.
Apri un progetto vuoto VB, vai su riferimenti, sfogli e cerchi il file
mztools3.dll, ti assicuri che sia spuntato e dai Ok.
Questo *solo* per registrare il file, non è necessario avere il riferimento
nel progetto!
Ora nella lista delle Aggiunte->Gestione Aggiunte avrai anche un "VB 6
Mztools"
Funziona perfettamente anche in italiano.
Ciao

 news:GUGy8.104017
Grazie Zanna. Certo che è un tantino diverso da quanto scritto nella sezione
Setup dell'Help... ;-)