Non so se ho capito bene la tua esigenza, ma può andare bene questa soluzione ?
Non proprio. Mi spiego...
Nei miei programmi la gestione degli errori e' centralizzata.
Per cui la struttura di ogni routine e' piu' o meno questa:
Sub Vatelapesca()
On Error GoTo Gestione_Errori
'---------------------------------
...
'Corpo della routine
'(possono essere anche centinaia di righe)
...
'---------------------------------
Gestione_Errori:
If ErrorKnown(Err.Number) Then
Resume...
'Chiusura e cancellazione degli oggetti utilizzati.
...
Err.Clear
On Error GoTo 0
Exit Sub
End Sub
Dove la Function
ErrorKnown fa un certo numero di verifiche ed eventuali tentativi di riparazione dell'errore e se ritorna il valore True significa che la routine Vatelapesca deve provare a continuare, per cui serve il Resume che fa ripartire la procedura da dove si era interrotta.
In caso contrario distrugge tutti gli oggetti aperti nella Vatelapesca (tipicamente dei Recordset, che sono l'equivalente dei Result di Gambas) ed esce, poiche' significa che l'errore non si poteve recuparare e quindi la ErrorKnown ha scaricato lo Stack delle chiamate in un file di log e ha dato l'istruzione di fine programma.
In pratica ho bisogno di un sistema che dopo aver controllato il tipo di errore possa decidere se continuare il programma (con un
Resume, perche' non posso sapere in che punto e' successo) oppure bloccare tutto, registrare lo stack e l'errore in un file di log, visualizzare un messaggio per l'utente ed uscire.
Questo e' cio' che dovrebbe fare un programma che si rispetti.