must be caught or declared to be thrown

must be caught or declared to be thrown - Java - Programmation

Marsh Posté le 23-06-2002 à 17:22:25    

Je lutte avec cette erreur, et étant débutant, j'ai beaucoup de mal.
Voici les codes source, ca doit être tout bête pour vous, mais je vois pas...

Code :
  1. import javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;
  4. import java.io.IOException;
  5. public class NewDatawarehouse extends JDialog
  6. {
  7.  private JTextField nom;
  8.  private JTextField host;
  9.  private JTextField port;
  10.  private JTextField sid;
  11.  public NewDatawarehouse()
  12.  {
  13.    init();
  14.  }
  15.  public NewDatawarehouse(Frame owner)
  16.  {
  17.    super(owner);
  18.    init();
  19.  }
  20.  public NewDatawarehouse(Dialog owner)
  21.  {
  22.    super(owner);
  23.    init();
  24.  }
  25.  public void init()
  26.  {
  27.    setTitle("Ajout de datawarehouse" );
  28.    // Définition des Panels
  29.    JPanel pan_principal = new JPanel(new BorderLayout());
  30.    JPanel pan_label = new JPanel(new GridLayout(4,1));
  31.    JPanel pan_textfield = new JPanel(new GridLayout(4,1));
  32.    JPanel pan_button = new JPanel(new GridLayout(1,2));
  33.    // Positionnement des Panel sur le Panel principal
  34.    pan_principal.add(pan_label, BorderLayout.WEST);
  35.    pan_principal.add(pan_textfield, BorderLayout.CENTER);
  36.    pan_principal.add(pan_button, BorderLayout.SOUTH);
  37.    // Ajout des éléments sur les différents Panels
  38.    pan_label.add(new JLabel(" Nom de la Base " ));
  39.    pan_label.add(new JLabel(" Host " ));
  40.    pan_label.add(new JLabel(" Port " ));
  41.    pan_label.add(new JLabel(" SID " ));
  42.    // Définition des Boutons
  43.    JButton ok = new JButton("Créer la base" );
  44.    JButton annuler = new JButton("Annuler" );
  45.    // Positionnement des Boutons
  46.    pan_button.add(annuler);
  47.    pan_button.add(ok);
  48.    // Définition des zones de saisie
  49.    nom = new JTextField(20);
  50.    host = new JTextField(20);
  51.    port = new JTextField(5);
  52.    sid = new JTextField(15);
  53.    // Positionnement des zones de saisie
  54.    pan_textfield.add(nom);
  55.    pan_textfield.add(host);
  56.    pan_textfield.add(port);
  57.    pan_textfield.add(sid);
  58.    this.setContentPane(pan_principal);
  59.    // Gestion des événements
  60.    ok.addActionListener(new ActionListener()
  61.    {
  62.      public void actionPerformed(ActionEvent e)
  63.      {
  64.        System.out.println("Ecriture des paramètres dans le fichier de configuration" );
  65.        String fichieractuel=lectureFichier.readFile("conf_dtw.t
  66. xt" );
  67.        System.out.println(fichieractuel);
  68.        String nouveaufichier=fichieractuel+"|"+nom.getText()+
  69. "|"+host.getText()+":"+port.getText()+":"+sid
  70. .getText();
  71.        System.out.println(nouveaufichier);
  72.        EcritureTexte.writeFile(nouveaufichier);
  73.      }
  74.    });
  75.    annuler.addActionListener(new ActionListener()
  76.    {
  77.      public void actionPerformed(ActionEvent e)
  78.      {
  79.        System.out.println("Fermeture de la fenetre et retour à la fenetre de connexion" );
  80.      }
  81.    });
  82.  }
  83.  public static void main(String[] args)
  84.  {
  85.    NewDatawarehouse test = new NewDatawarehouse();
  86.    test.setSize(300,150);
  87.    test.setVisible(true);
  88.  }
  89. }


 

Code :
  1. // Ecriture dans un fichier texte
  2. import java.io.*;
  3. public class EcritureTexte
  4. {
  5.   // Méthode main
  6.   public static void writeFile(String chaine) throws IOException
  7.   {
  8.   // nom du fichier physique à écrire
  9.   String fichier ="conf_dtw.txt";
  10.   // association d'un nom logique "fichierSortie"
  11.   // au fichier physique "conf_dtw.txt"
  12.   // les 3 lignes suivantes sont nécessaires
  13.   FileWriter fw = new FileWriter (fichier);
  14.   BufferedWriter bw = new BufferedWriter (fw);
  15.   PrintWriter fichierSortie = new PrintWriter (bw);
  16. fichierSortie.print(chaine);
  17.   fichierSortie.close(); // fermeture du fichier
  18.   System.out.println("Le fichier " + fichier + " a été créé!" );
  19.   }
  20. }


J'espère que vous pourrez m'aider.


---------------
SaulGoodman.fr: Actus sur la série Better Call Saul
Reply

Marsh Posté le 23-06-2002 à 17:22:25   

Reply

Marsh Posté le 23-06-2002 à 17:26:00    

J'ai pas lu le code mais comme l'erreur le dit : tu surcharges une méthode qui peut envoyer une exception : tu dois attrapper l'exception avec try/catch ou bien garder le même prototype de la méthode (declarateur : thrown)

Reply

Marsh Posté le 23-06-2002 à 17:32:39    

Smaragdus a écrit a écrit :

J'ai pas lu le code mais comme l'erreur le dit : tu surcharges une méthode qui peut envoyer une exception : tu dois attrapper l'exception avec try/catch ou bien garder le même prototype de la méthode (declarateur : thrown)  




Au niveau du code, ca impliquerais quoi exactement ?
Parce que j'ai déjà essayé avec un Try Catch, et chui pas sur de l'avoir fé correctement


---------------
SaulGoodman.fr: Actus sur la série Better Call Saul
Reply

Marsh Posté le 23-06-2002 à 17:51:54    

C'est à quel endroit de ton code l'erreur ? (flemme de tout lire, c'est Dimanche !)
 
Sinon le try/catch, ca doit faire un truc du genre :

Code :
  1. try{
  2. méthodeQuiPeutLancerUneException();
  3. } catch (Exception e){
  4. // Traiter l'erreur
  5. }


Maintenant si tu veux pas traiter l'exception là ou elle est lancée, tu rajoutes throws Exception à la déclaration de ta methode, et l'exception remonte si elle est lancée.

Reply

Marsh Posté le 23-06-2002 à 17:53:39    

Dans ton actionPerformed, remplace "EcritureTexte.writeFile(nouveaufichier);" par :

Code :
  1. try {
  2.     EcritureTexte.writeFile(nouveaufichier);
  3. } catch(IOException e) {
  4. }

Au ";" près ça doit marcher. Mais dans ce cas, tu ne fais rien s'il y a un problème.


---------------
Le site de ma maman
Reply

Marsh Posté le 23-06-2002 à 18:11:39    

Ok merci, je vais tester celà. Je vous tiens au courant


---------------
SaulGoodman.fr: Actus sur la série Better Call Saul
Reply

Marsh Posté le 23-06-2002 à 18:20:27    

mon petit boulay  
chui fier de ton code il a une superbe indentation c'est tres important

Reply

Marsh Posté le 23-06-2002 à 18:38:06    

veryfree a écrit a écrit :

mon petit boulay  
chui fier de ton code il a une superbe indentation c'est tres important  




Merci grand maitre.
J'avais à l'époque du BTS un prof très pointilleux sur ce point.
Et puis moi aussi ca m'aide bien de l'indenter parfaitement, je me comprends mieux :lol:  
Sinon, ben le source marche, donc rdv dans 10mn pour mon prochain soucis.


---------------
SaulGoodman.fr: Actus sur la série Better Call Saul
Reply

Marsh Posté le 23-06-2002 à 19:34:46    

next time cybervince, en plus d'ajouter le code comme tu l'as si bien fait, pourrais tu ajouter le message du compilo et mettre en GRAS le(s) ligne(s) concernée(s) dans le code  ...
 
Avec ca on peux te répondre très très vite (c'est bien plus efficient)
 
A+


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 23-06-2002 à 21:11:25    

mais c'est mon arrière petit boolay !!! dans mes bras mon enfant  :sweat:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-06-2002 à 21:11:25   

Reply

Marsh Posté le 24-06-2002 à 08:21:30    

DarkLord a écrit a écrit :

 pourrais tu ajouter le message du compilo et mettre en GRAS le(s) ligne(s) concernée(s) dans le code  ...




:jap:

Reply

Marsh Posté le 24-06-2002 à 10:48:24    

DarkLord a écrit a écrit :

[...]
Avec ca on peux te répondre très très vite (c'est bien plus efficient)



 
on dit "efficace", arrete de te la peter bilingual :D

Reply

Marsh Posté le 24-06-2002 à 10:49:35    

--greg-- a écrit a écrit :

 
 
on dit "efficace", arrete de te la peter bilingual :D  




[:rofl]
 :lol:  :lol:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 24-06-2002 à 10:51:50    

--greg-- a écrit a écrit :

 
 
on dit "efficace", arrete de te la peter bilingual :D  




 
c'est vraiment la chose à dire tiens ca!


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 24-06-2002 à 10:53:19    

Après avoir regardé ton code, c facile :  
 
Cette méthode :  
public static void writeFile(String chaine) throws IOException  
 
lance une IOException
 
Donc, dans la méthode qui l'appelle (public void actionPerformed(ActionEvent e)  )
 
il faut la catcher (tu ne peux pas la relancer, sinon, tu ne respectera pas le prototype de ActionPerformed, qui est défini par l'interface ActionListener)

Reply

Marsh Posté le 24-06-2002 à 10:53:32    

cybervince a écrit a écrit :

 
Merci grand maitre.
J'avais à l'époque du BTS un prof très pointilleux sur ce point.
Et puis moi aussi ca m'aide bien de l'indenter parfaitement, je me comprends mieux :lol:  
Sinon, ben le source marche, donc rdv dans 10mn pour mon prochain soucis.  




t'as fait quoi apres ton BTS?

Reply

Marsh Posté le 24-06-2002 à 13:48:11    

gfive a écrit a écrit :

Après avoir regardé ton code, c facile :  
 
Cette méthode :  
public static void writeFile(String chaine) throws IOException  
 
lance une IOException
 
Donc, dans la méthode qui l'appelle (public void actionPerformed(ActionEvent e)  )
 
il faut la catcher (tu ne peux pas la relancer, sinon, tu ne respectera pas le prototype de ActionPerformed, qui est défini par l'interface ActionListener)  



C'est ce que j'ai dit ! :D
Confirmation du sous-boolay ? Cela marche-t-il ainsi ?


---------------
Le site de ma maman
Reply

Marsh Posté le 27-06-2002 à 11:48:22    

Cherrytree a écrit a écrit :

C'est ce que j'ai dit ! :D
Confirmation du sous-boolay ? Cela marche-t-il ainsi ?




Oué oué, je confirme, ca marche :jap:


---------------
SaulGoodman.fr: Actus sur la série Better Call Saul
Reply

Marsh Posté le 27-06-2002 à 16:27:30    

cybervince a écrit a écrit :

 
Oué oué, je confirme, ca marche :jap:  



Hourra !


---------------
Le site de ma maman
Reply

Marsh Posté le 27-06-2002 à 16:30:16    

Cherrytree a écrit a écrit :

Hourra !




 [:vinz416@school]

Reply

Marsh Posté le 28-02-2004 à 21:33:40    

nostalgie qd tu nous tiens :'(

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed