Sto scrivendo una piccola applicazione in TypeScript che deve fare un'operazione asincrona e lo sto facendo con Promise
e async/await
zucchero. Ma il mio problema non si basa sulla particolare lingua o strategia di asincronicità.
L'operazione è sia di I / O che di rete, qualcosa del tipo:
- ogni 2 minuti trova un file adatto dal file system
- calcola sha1
- esegui lo streaming tramite tcp
- attendi la risposta e controlla se lo sha1 ricevuto è ok
Non so quando e come gestire gli errori: normalmente devo registrare l'errore nel db e continuare la successiva iterazione o fare un altro tentativo.
Ma quando registrarsi? quando usare il fermo?
La prima idea è al massimo livello:
const result = await doEverything().catch( function(err) {
if(err.code === 'file not found') ...
if(err.code === 'connection timeout after 3 retry') ...
}
Ma non so se sia l'opzione migliore. Puoi consigliarmi alcune buone letture sulle migliori pratiche per gestire gli errori?