Java, OpenClassroom, exceptions

Résolu/Fermé
iDarkMaster Messages postés 97 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 31 décembre 2018 - Modifié le 21 avril 2018 à 22:25
iDarkMaster Messages postés 97 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 31 décembre 2018 - 22 avril 2018 à 01:50
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 :
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
A voir également:

1 réponse

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
22 avril 2018 à 01:09
Bonjour,

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 {
1
iDarkMaster Messages postés 97 Date d'inscription vendredi 19 août 2016 Statut Membre Dernière intervention 31 décembre 2018 2
22 avril 2018 à 01:50
Merci, c'était une erreur idiote mais il faut faire des erreurs pour apprendre :)
0