/ / Ajout de clé dans un bloc catch sur KeyNotFoundException Java - java, exception, hashmap

Ajout de clé dans le bloc catch sur KeyNotFoundException Java - Java, exception, hashmap

Est-il possible d'attraper le KeyNotFoundException en Java HashMap et ajouter la clé à la carte dans le bloc de capture?

Par exemple, je veux ajouter une valeur à la clé dans HashMap. Si cette clé n'est pas présente, alors KeyNotFoundException sera jeté.

Une alternative consiste à vérifier à chaque fois si la cléexiste. Si ce n'est pas le cas, ajoutez la clé, puis la valeur. S'il existe, ajoutez directement la valeur à la clé. Cependant, il y aura beaucoup de surcharge avec les conditions if. Ainsi, lorsque cette exception est levée, puis-je ajouter la clé et la valeur dans la clause catch, puis procéder correctement?

Réponses:

1 pour la réponse № 1

Si la clé n'existe pas, map.put(key,value) simplement l'ajouter avec sa valeur. Si la clé existe, map.put(key,value) écraserait l'ancienne valeur. De toute façon, aucune exception ne sera levée. Pourquoi voudriez-vous lancer une exception?

Si vous souhaitez modifier la valeur actuelle lorsque leSi la clé est déjà présente, il serait préférable de vérifier si la clé existe et de l'ajouter dans le cas contraire. Sinon, vous devrez toujours vérifier si la clé existe (soit avec !map.containsKey(key) ou map.get(key)==null) afin de savoir quand lever l'exception,et vous devrez toujours écrire la logique qui ajoute la clé dans le bloc catch, de sorte que vous ne sauvegarderez rien, et votre code deviendra moins lisible.


1 pour la réponse № 2

Vous vous trompez à 100% sur tout cela.

Est-il possible d'attraper le KeyNotFoundException en Java HashMap

Non, car il n'y a pas d'exception de ce type en Java.

et ajouter la clé à la carte dans le bloc de capture?

Non, car vous ne pouvez même pas compiler un tel code,

Par exemple, je veux ajouter une valeur à la clé dans hashmap. Si cette clé n'est pas présente, alors KeyNotFoundException sera jeté.

Non, il n'a pas gagné.

Une alternative consiste à vérifier à chaque fois si la clé existe.

Avec Map.containsKey().

Si ce n'est pas le cas, ajoutez la clé, puis ajoutez la valeur.

S'il existe, ajoutez directement la valeur à la clé. Mais, il y aura beaucoup de frais généraux avec les conditions si.

Non, il n'y a pas gagné. HashMap est O (1) pour les opérations clés.

Donc, quand cette exception est levée,

"Cette exception" n’a pas été lancée. Elle n’existe même pas.

Puis-je ajouter la clé et la valeur dans la clause catch, puis procéder correctement?

Non, car vous ne pouvez pas compiler le code.

Votre question est fondée sur de faux prémisses.