Java, OpenClassroom, exceptions
Résolu
Bonjour,
je suis un cours de java en ligne sur OpenClassroom et j'arrive aux exceptions,
même avec leur code, ça ne fonctionne pas.
Voici le code de mon Ville.java :
et celui de ma classe NombreHabitantException.java :
et celui de mon Program.java :
Si vous pourriez m'éclairer sur mon erreur, j'aimerais bien vous lire.
Lien de la page OpenClassroom: https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
je suis un cours de java en ligne sur OpenClassroom et j'arrive aux exceptions,
même avec leur code, ça ne fonctionne pas.
Voici le code de mon Ville.java :
package project;
public class Ville {
protected String name, country;
protected int population;
protected char rank;
public static int instances;
protected static int instancesB;
public static int instNum(){
return instancesB;
}
public char getRank(){
return this.rank;
}
public String getName(){
return name;
}
public String getCountry(){
return country;
}
public int getPopulation(){
return population;
}
public void setName(String iName){
name = iName;
}
public void setCountry(String iCountry){
country = iCountry;
}
public void setPopulation(int iPopulation){
population = iPopulation;
}
public void getInfo(){
System.out.println("Name : " + name);
System.out.println("Country : " + country);
System.out.println("Population : " + population);
System.out.println("Rank : " + this.rank);
}
//Constructeurs
public Ville(){
System.out.println("Creating a city...");
population = 0;
name = "Unknown";
country = "Unknown";
this.setRank();
instances++;
instancesB++;
}
//Constructeur d'initialisation
public Ville(String pName, String pCountry, int pPopulation){
throws NombreHabitantException
{
if(pPopulation < 0)
throw new NombreHabitantException();
else
{
instances++;
instancesB++;
//System.out.println("Creation de " + pName + " !");
name = pName;
country = pCountry;
population = pPopulation;
this.setRank();
}
}
}
//Donneur de rang
protected void setRank(){
int rkP[] = {0, 1000, 10_000, 100_000, 500_000, 1_000_000};
char rk[] = {'A','B','C','D','E','F'};
int i = 0;
while (i < rkP.length && this.population > rkP[i]) {
i++;
this.rank = rk[i];
}
}
//comparateur
public void compare(Ville v1){
if (v1.getPopulation() < this.population)
System.out.println(this.name + " have more people than " + v1.getName());
else
System.out.println(v1.getName() + " have more people than " + this.name);
}
}
et celui de ma classe NombreHabitantException.java :
package project;
public class NombreHabitantException extends Exception {
public NombreHabitantException() {
System.out.println("Vous essayez d'instancier une classe Ville avec un nombre d'habitants negatif !");
}
}
et celui de mon Program.java :
package project;
public class Program {
public static void main(String[] args) {
try {
Ville v = new Ville("Toronto", "Canada", 12000);
}catch (NombreHabitantException e) {}
}
}
Si vous pourriez m'éclairer sur mon erreur, j'aimerais bien vous lire.
Lien de la page OpenClassroom: https://openclassrooms.com/fr/courses/6173501-debutez-la-programmation-avec-java?archived-source=26832
1 réponse
-
ModérateurBonjour,
Ton erreur est ici :public Ville(String pName, String pCountry, int pPopulation){ throws NombreHabitantException {
Le problème vient de l'accolade avant le throws, Java compends que la méthode commence et que dans son contenu on a un throws, mais ça n'a pas de sens.
Un throws est forcément dans la signature de la méthode, donc avant les accolades.
Le code correct :public Ville(String pName, String pCountry, int pPopulation) throws NombreHabitantException {