Mezzetti0903
04-11-2004, 18:08
Allora..sto scrivendo un programma che presenta la funzione A() che svolge determinate azioni AZIONI1 e AZIONI2
[code]
funzione A () {
AZIONI1;
AZIONI2;
}
[code]
ora..può capitare che queste azioni vadano a vuoto per cui ho messo un bel try(catch
[code]
funzione A () {
try{
AZIONI1;
}
catch {
}
AZIONI2;
}
[code]
Il problema sorge perchè la gestione dell'errore consiste in una Ripetizione di AZIONI1.
E' in questi momenti che vorrei un bel Goto e riportare tutto all'inizio del try...ma non si può e allora ho pensato a questo
[code]
funzione A () {
try{
AZIONI1;
}
catch {
A()
}
#
AZIONI2;
}
[code]
(non badate al fatto che potrebbe andare in loop..nel programma vero c'è una variabile di controllo che non fa ripetere tutto più di 3 volte.)
Risulta evidente che così facendo AZIONI2 verrebbe ripetuto più volte..una per ogni azione non andata a buon fine.
E così ho risolto in un modo
chiamando subito dopo AZIONI2 La chiusura del Thread...in modo che una volta finito per la prima volta AZIONI2 il tutto termini.
Altra soluzione sarebbe stata mettere AZIONI2 dentro il Try...ma AZIONI2 non "ammette" errori.
Insomma...voi come avreste risolto...sinceramente a me non piace nessuna delle 2 soluzioni...e sto pensando seriamente a quanto sia più elegante un bel GOTO
[code]
funzione A () {
AZIONI1;
AZIONI2;
}
[code]
ora..può capitare che queste azioni vadano a vuoto per cui ho messo un bel try(catch
[code]
funzione A () {
try{
AZIONI1;
}
catch {
}
AZIONI2;
}
[code]
Il problema sorge perchè la gestione dell'errore consiste in una Ripetizione di AZIONI1.
E' in questi momenti che vorrei un bel Goto e riportare tutto all'inizio del try...ma non si può e allora ho pensato a questo
[code]
funzione A () {
try{
AZIONI1;
}
catch {
A()
}
#
AZIONI2;
}
[code]
(non badate al fatto che potrebbe andare in loop..nel programma vero c'è una variabile di controllo che non fa ripetere tutto più di 3 volte.)
Risulta evidente che così facendo AZIONI2 verrebbe ripetuto più volte..una per ogni azione non andata a buon fine.
E così ho risolto in un modo
chiamando subito dopo AZIONI2 La chiusura del Thread...in modo che una volta finito per la prima volta AZIONI2 il tutto termini.
Altra soluzione sarebbe stata mettere AZIONI2 dentro il Try...ma AZIONI2 non "ammette" errori.
Insomma...voi come avreste risolto...sinceramente a me non piace nessuna delle 2 soluzioni...e sto pensando seriamente a quanto sia più elegante un bel GOTO