Il mio lead dev si è lamentato del fatto che ho troppa logica in un blocco catch annidato. Il mio codice è simile a questo:
try
{
// some setup and a network call
}
catch (CustomEx ex)
{
try
{
KindaLengthyRecursiveRetryMethodThatHandlesCustomEx(numTimesToTry);
}
catch (AnyException ex2)
{
// Log Exception
throw;
}
}
KindaLengthyRecursiveRetryMethodThatHandlesCustomEx()
effettua la stessa chiamata di rete della prova genitore. Questo è necessario perché non abbiamo modo di sapere che CustomEx si verificherà fino a quando la chiamata di rete fallirà, e se ci sono più cose che non vanno nella richiesta, la chiamata di rete restituirà solo un errore alla volta (da qui il tentativo).
Qualcuno ha un feedback su come migliorare questa struttura di codice?