Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gestione delle eccezioni - raccolta dei possibili errori #3

Open
franthemanIT opened this issue Oct 5, 2021 · 0 comments
Open

Gestione delle eccezioni - raccolta dei possibili errori #3

franthemanIT opened this issue Oct 5, 2021 · 0 comments
Labels
enhancement New feature or request

Comments

@franthemanIT
Copy link
Collaborator

Come avete visto, il codice non prevede gestione delle eccezioni. E' qualcosa che, pensado di usare parlaConIO nell'operatività amministrativa, va aggiunta.
Invito a segnalare qui o in issue dedicata le eccezioni/errori che possono verificarsi nell'uso del programma.

Osservo preliminarmente che:

  • le operazioni che avvengono offline (principalmente: individuazione del CSV, individuazione delle corrispondenze) non dovrebbero dare origini a eccezioni e, se anche lo facessere, queste non creerebbero eccessivi disagi (almeno all'utente. almeno a quello smaliziato).
  • la parte di interazione con le API di IO è quella principalmente soggetta a errori.

Elenco di seguito gli errori durante l'interazione con IO in cui mi sono imbattuto e che, non gestiti, determinano l'arresto del programma e la mancata produzione dei file di output (eccetto i log, dai quali comunque è possibile capire dove si è interrotta l'iterazione del dialogo con IO):

  • getProfile: si passa una stringa vuota come codice fiscale da controllare (un codice fiscale non vuoto, non formalmente corretto genera comunque una risposta di IO e parlaConIO lo annota fra le interrogazioni in errore) - SOLUZIONE: passare al codice fiscale successivo e 1. annotare la stringa vuota in "interrogazioniInErrore", 2. segnalare l'evento vistosamente nel log indicando la riga del csv afflitta dall'errore.
  • mancanza di rete: genera un errore di timeout. SOLUZIONE: attendere per un certo periodo di tempo e riprovare nuovamente il medesimo invio? dopo il secondo errore consecutivo passare al successivo? se anche il successivo va in timeput interrompere l'interazione con IO, produrre i file di output parziali e fare un dump degli invii non fatti (dump in json di tabellaDati, da usare come input per una ipotetica funzione di recupero di un invio incompleto).
  • ...

Errori offline:

  • funzione data: si attende una data scritta in un certo modo nel CSV, se una riga avesse una data difforme genererebbe un'eccezione. SOLUZIONE: passare all'invio successivo, segnalare a video e nel log con indicazione della riga del CSV afflitta dall'errore, generare un ulteriore file di output per gli errori. La rimozione dell'errore in questo caso deve passare dalla modifica della fonte CSV, non si prevedono meccanismi di recupero (semplicemente, si farà un nuovo CSV che contiene solo le righe afflitte da errore opportunamente corrette e si lancia l'invio di un nuovo lotto).
@franthemanIT franthemanIT added the enhancement New feature or request label Oct 5, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant