It is currently 7 June 2025, 19:36 Advanced search

Eccezione non interrompe la validazione

Questo forum è nato con lo scopo di raccogliere le proposte di modifica di Instant Developer e discuterne insieme.

Eccezione non interrompe la validazione

Postby sfirpo » 6 April 2011, 10:55

Per validare le righe di un pannello, all'interno dei consueti eventi di validazione (ad esempio onUpdatingRow) utilizzo metodi definiti in una classe Java esterna.
Ad esempio, si utilizza questa tecnica per la validazione di un campo codice fiscale.

Se il programma in questione scatena un'eccezione, e questa eccezione non è gestita con un blocco try/catch (impostando nel catch lo stato di errore del pannello), l'applicazione "si accorge" che si è verificata un'eccezione (tanto è vero che appare la solita finestra di gestione delle eccezioni impreviste), ma non essendo il pannello in errrore il ciclo di validazione prosegue e, al suo termine, le modifiche sono regolarmente riportate sul database.

Il risultato potenziale è che la validazione non vada a buon fine (eccezione) ma si ritrovino i dati (sbagliati) ugualmente inseriti sul database.

Pertanto, si propone di interrompere SEMPRE il ciclo di validazione e salvataggio dei dati a fronte di eccezioni non gestite, indipendentemente dal fatto che il pannello sia in stato di errore o meno.
User avatar
sfirpo
 
Posts: 101
Joined: 26 October 2010, 12:50
Location: Genova

Re: Eccezione non interrompe la validazione

Postby g.lanzi » 15 April 2011, 14:49

In realtà la gestione degli errori che vengono trappati dal sistema è una feature importante del framework di In.de. Fa sì che in debug sia sempre visibile il problema, che l'applicazione non entri mai in uno stato anomalo e che il normale comportamento applicativo venga preservato.

E' possibile fare in modo che le funzioni non trappino le eccezioni impostando a true il flag "propaga eccezioni" nella schermata di proprietà dell'evento di Validate.
Se si parla di un pannello DO il caso è gestito e il framework interrompe il salvataggio abortendo la transazione documentale. Ma in questo caso è la validate del documento a dare errore, non quella del pannello.
Se si parla di un pannello DB invece vale quanto detto sopra.

Credo che per completare l'uso della classe esterna la strada giusta rimanga quella del blocco try/catch che nel catch imposta un errore nel pannello.
Giuseppe Lanzi
Director of Support services
Pro Gamma S.p.A.
User avatar
g.lanzi
Pro Gamma
Pro Gamma
 
Posts: 3504
Joined: 29 September 2010, 10:24
Location: Bologna

Re: Eccezione non interrompe la validazione

Postby mtozzi » 18 April 2011, 9:05

non mi sembra comunque corretto che l'eccezione non interrompa l'esecuzione del salvataggio dei dati. Inoltre in questo modo non è possibile gestire in modo globale le eccezioni perchè si è costretti a inserire un try catch ogni volta
mtozzi
 
Posts: 413
Joined: 2 November 2010, 9:33


Return to Proposte di modifica

Who is online

Users browsing this forum: No registered users and 16 guests