Perché questo codice farlo in questo modo?
Perché apparentemente il codice non sa come gestire le eccezioni a questo livello. Questo va bene - fino a quando uno dei chiamanti lo fa, vale a dire fino a quando l'eccezione viene in definitiva gestita da qualche parte.
Spesso, codice di basso livello non può reagire adeguatamente eccezioni perché l'utente deve essere informato, oppure l'eccezione deve essere registrato, o un'altra strategia deve essere provato. Il codice di basso livello esegue una sola funzione e non conosce il processo decisionale di livello superiore.
Ma il codice ha ancora bisogno di ripulire le sue risorse (perché se non lo fa, avrebbero perdite), in modo che fa proprio questo nella clausola finally
, facendo in modo che essa sempre accade, se un'eccezione è stata lanciato o no.
fonte
2010-04-10 18:40:01
comunemente usato con i blocchi come in: lock.lock(); prova {/ * locked * /} finally {lock.unlock()} – mins