OVH Cloud OVH Cloud

Exception

3 réponses
Avatar
Joseph KHOURY
Bonjour,

Dans le cadre d'un projet de gestion bancaire, j'ai un problème au niveau de
l'exception SodeInsuffisant. Pouvez vous me dire comment faire pour que le
programme ne s'arrete pas lorsque l'exception SodeInsuffisant est lance ???

Merci de votre aide

//---------------------------------------------------
public class SoldeInsuffisantException extends RuntimeException
{
public SoldeInsuffisantException() {}

public SoldeInsuffisantException(String message)
{
super(message);
}
}

//----------------------------
// Classe CompteBancaire
/**
* Classe représentant un compte bancaire et les méthodes qui lui
* sont associées.
*/
public class CompteBancaire{
private String nom; // le nom du client
private String adresse; // son adresse
private int numero; // numéro du compte
private float solde; // solde du compte

//Constructeur
public CompteBancaire(String nom, String adresse, int numero)
{
this.nom=nom;
this.adresse=adresse;
this.numero=numero;

}

// Les méthodes
public void crediter(float montant) {

solde += montant;
}

public void debiter(float montant)throws SoldeInsuffisantException{
if (montant> solde)
throw new SoldeInsuffisantException("\nle montant "+ montant +" a retirer "
+ " depasse le solde " + solde);
solde -= montant;
}

public void afficherEtat() {
System.out.println("Compte numero " + numero +
" ouvert au nom de " + nom);
System.out.println("Adresse du titulaire : " + adresse);
System.out.println("Le solde actuel du compte est de " +
solde + " $.");
System.out.println("************************************************");
}
}



//------------------------------------------------
/**
* Classe contenant un programme de gestion bancaire, utilisant
* un tableau de comptes bancaires
*
*/
import java.util.*;
public class BanqueException {
public static void main(String[] args) {
CompteBancaire[] tabComptes = new CompteBancaire[3];
Scanner in = new Scanner(System.in);
// Initialisation des comptes
for (int i = 0 ; i < tabComptes.length ; i++) {
// Lire les valeurs d'initialisation
System.out.print("\n\nNom du titulaire : ");
String monNom = in.next();
System.out.print("\nSon adresse : ");
String monAdresse = in.next();
System.out.print("\nSon Numero de compte : ");
int monNumero = in.nextInt();
// Créer le compte -- notez la syntaxe avec new
tabComptes[i] = new CompteBancaire(monNom, monAdresse, monNumero);
}
boolean fin = false; // variable vraie si on veut s'arrêter
while(true) { // boucle infinie dont on sort par un break
System.out.println("\nVotre choix : [D]ebit, [C]redit, [F]in ? ");
String choix = in.next();
boolean credit = false; // variable vraie si c'est un crédit
// Récupérer la première lettre de la chaîne saisie
char monChoix = choix.charAt(0);
switch(monChoix) {
case 'C':
case 'c': // Même chose pour majuscule et minuscule
credit = true;
fin = false;
break; // Pour ne pas continuer en séquence
case 'd':
case 'D':
credit = false;
fin = false;
break;
case 'f':
case 'F':
fin = true;
break;
default:
fin = true; // On va considérer que par défaut on s'arrête
}
if (fin) {
break; // sortir de la boucle ici
}
else {
System.out.print("\nIndice dans le tableau des comptes = ");
int indice = in.nextInt();
System.out.print("\nMontant a " + (credit ? "crediter" : "debiter") + " :
");
float montant = in.nextFloat();
if (credit) {
tabComptes[indice].crediter(montant);
}
else {
tabComptes[indice].debiter(montant);
}
// Afficher le nouveau solde
tabComptes[indice].afficherEtat();
}
}
}
}

//---------------------------------------------

3 réponses

Avatar
David
Le Sun, 15 Jan 2006 16:41:11 +0100, Joseph KHOURY a écrit :

Bonjour,

Dans le cadre d'un projet de gestion bancaire, j'ai un problème au niveau
de l'exception SodeInsuffisant. Pouvez vous me dire comment faire pour que
le programme ne s'arrete pas lorsque l'exception SodeInsuffisant est lance


try .. catch .. ça ne te dit rien ?

Et pourquoi tu hérites de RuntimeException ?
Normalement seules les erreurs techniques héritent de RuntimeException,
les erreurs fonctionnelles héritent de Exception tout court. Ca oblige le
try .. catch ... aux fainéants.

Avatar
Dam
ça sent un projet d'école ça... ;)
Avatar
Joseph KHOURY
:-)

"Dam" a écrit dans le message de news:

ça sent un projet d'école ça... ;)