Try-catch ha lo scopo di aiutare nella gestione delle eccezioni. Ciò significa che in qualche modo aiuterà il nostro sistema a essere più robusto: prova a recuperare da un evento imprevisto.
Sospettiamo che possa accadere qualcosa durante l'esecuzione e l'istruzione (invio di un messaggio), quindi viene racchiuso nel tentativo. Se succede qualcosa di quasi inaspettato, possiamo fare qualcosa: scriviamo il trucco. Non credo che abbiamo chiamato solo per registrare l'eccezione. Credo che il blocco catch abbia lo scopo di darci l'opportunità di recuperare dall'errore.
Ora, supponiamo che ci riprendiamo dall'errore perché potremmo correggere ciò che era sbagliato. Potrebbe essere molto bello fare un nuovo tentativo:
try{ some_instruction(); }
catch (NearlyUnexpectedException e){
fix_the_problem();
retry;
}
Questo cadrà rapidamente nel ciclo eterno, ma diciamo che il problema fix_the_ restituisce true, quindi riproviamo. Dato che non esiste nulla di simile in Java, come risolveresti questo problema? Quale sarebbe il tuo miglior codice di progettazione per risolvere questo?
Questa è una domanda filosofica, dato che so già che cosa sto chiedendo non è direttamente supportato da Java.
remove()
da una java.util.Queue
, che torce e InvalidElementException
quando la coda è vuota. Invece di chiedere se è vuoto, cerco le azioni in un try-catch (che sotto concorrenza diventa obbligatorio anche con il precedente if). In tal caso, nel catch
blocco chiederei di riempire la coda con più elementi e quindi riprovare. Ecco.