Try-catch est destiné à aider à la gestion des exceptions. Cela signifie en quelque sorte que cela aidera notre système à être plus robuste: essayez de récupérer après un événement inattendu.
Nous soupçonnons que quelque chose pourrait se produire lors de l'exécution et de l'instruction (envoi d'un message), il est donc inclus dans l'essai. Si quelque chose de presque inattendu se produit, nous pouvons faire quelque chose: nous écrivons la capture. Je ne pense pas que nous ayons appelé pour simplement enregistrer l'exception. Je pense que le bloc catch est destiné à nous donner la possibilité de récupérer de l'erreur.
Supposons maintenant que nous nous remettions de l'erreur parce que nous pouvions corriger ce qui n'allait pas. Ça pourrait être super sympa de refaire un essai:
try{ some_instruction(); }
catch (NearlyUnexpectedException e){
fix_the_problem();
retry;
}
Cela tomberait rapidement dans la boucle éternelle, mais disons que le fix_the_problem renvoie true, puis nous réessayons. Étant donné qu'il n'y a rien de tel en Java, comment résoudriez-vous ce problème? Quel serait votre meilleur code de conception pour résoudre ce problème?
C'est comme une question philosophique, étant donné que je sais déjà que ce que je demande n'est pas directement pris en charge par Java.
remove()
partir d'un java.util.Queue
, qui va et InvalidElementException
quand la file d'attente est vide. Au lieu de demander s'il est vide, je contourne les actions dans un try-catch (qui, sous concurrence, devient obligatoire même avec le précédent if). Dans un tel cas, dans le catch
bloc, je demanderais de remplir la file d'attente avec plus d'éléments, puis de réessayer. Voila.