Levée une exception [Résolu]

Messages postés
108
Date d'inscription
samedi 31 mars 2012
Dernière intervention
16 juin 2013
- - Dernière réponse : cs_Julien39
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
- 17 juin 2013 à 07:50
Bonjour
J'ai une hashmap ,r une méthode Park(int place, Car C) mon probléme est de lever une exception de type IllegalStateException quand la place est occupée.
voici la méthode:

public void Park ( int numPlace, Car C)
{

if (Garage.containsKey(numPlace))
{
try{}
catch(IllegalStateException e) {System.out.println("Place déjà occupée");}
}
else
Garage.put(numPlace, C);

}
quand je met dans le try Garage.put(numPlace, C); il écrase l'ancienne valeur et je veux pas qu'il le fasse c'est pourquoi j'ai rien mis à l'intérieur.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
108
Date d'inscription
samedi 31 mars 2012
Dernière intervention
16 juin 2013
3
Merci
merci j'ai réussi à résoudre mon pb

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de andoid
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
276
3
Merci
Salut,

Ce code n'a aucun sens :

try{} 
catch(IllegalStateException e) {System.out.println("Place déjà occupée");} 


Rien n'est exécuté donc cette exception ne sera pas levée, je pense que tu voulais utiliser un throw IllegalStateException ("Place déjà occupée");

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Julien39
Messages postés
31
Date d'inscription
mardi 5 novembre 2002
Dernière intervention
16 juin 2013
0
Merci
Salut

Moi j aurais plutot mis un le if(garage.contains..){
throw new PlaceOccupeException();
}else{
Garage.put(...)
}

Il faut que tu propage lexception a la methode appelante et que tu ajoutes le mot cle synchonized sur ta methode ou ta hashmap au cas ou 2 threads accederais a ta map en meme temps, car si 2 threads arrive dans ta methode en meme temps le garage.contains va repondre ok c libre et le garage.put qui arrivera en premier sera ecrase par le second et tu perdras une info.
Bon courage
PAM
Commenter la réponse de cs_Palex

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.