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).
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:
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):
Errori offline: