Ripristino parziale da un'eccezione [duplicato]

1

Ho visto i blocchi Gestione delle eccezioni che erano throw del% co_de recentemente rilevato nel blocco Exception . Qualcosa come:

} catch ( Exception $e ) {
    // Do some recovery here
    callSomeFunction();

    throw $e;
}

Per me non ha molto senso per catch esattamente lo stesso throw come questo, ma non sono sicuro se ho ragione o no. Forse ci sono situazioni in cui questa è l'unica opzione?

La mia domanda è quali sono i pro e i contro di questo approccio e non dovrebbe essere totalmente evitato il più possibile?

    
posta Mahdi 05.03.2014 - 08:06
fonte

1 risposta

2

A volte hai più informazioni a portata di mano, come i valori intermedi, con cui puoi fare qualcosa. Un sacco di volte è possibile registrare tali informazioni, se non altro.

Puoi anche tentare il ripristino o il backout prima di modificare il chiamante che qualcosa è andato storto.

Ma, in ultima analisi, se il codice non può completare il suo caso d'uso e deve fermarsi, allora eseguire una mitigazione o un rapporto può essere utile prima di ripetere l'errore.

Il problema è, cosa succede se la mitigazione fallisce? La gestione delle eccezioni annidate può diventare pelosa. Quindi sono con te; A volte gestirò & ri-gettare l'errore, ma penserò anche al mio design.

    
risposta data 05.03.2014 - 08:16
fonte

Leggi altre domande sui tag