[java]unreported exeption java.io.IOexption

unreported exeption java.io.IOexption [java] - Programmation

Marsh Posté le 15-02-2002 à 10:19:15    

voila mon petit problème. Je comprend le message d'erreur mais je  
ne sais comment le résoudre.  
"unreported java.io.IOexption must be caught or declared to be thrown".
 
Programme principal:
 
package Chat;
 
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
 
class FenetreServeur extends JFrame implements ActionListener
{
     
    FenetreServeur()
    {
 etc...        
        /* lancement du serveur */
 ----------       LunchServer.lunch();------------ c'est ici
             
    }    
     
    public void actionPerformed(ActionEvent actionEvent)  
    {
        if (actionEvent.getSource() == exit)
            System.exit(0);
    }    
}
 
class Panneau extends JPanel
{
 etc....
}
 
public class IGServeur
{
    public static void main (String [] args)
    {
        FenetreServeur fenetreServeur = new FenetreServeur();
        fenetreServeur.setVisible(true);
        fenetreServeur.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        });
    }
}
 
second prog
 
package Chat;
 
import java.net.*;
import java.io.*;
 
class LunchServer  
{
    public static void lunch() throws IOException  
    {
        /* création d'une socket serveur */
        ServerSocket serverSocket = null;
        try
        {
   etc....
        }
        catch (IOException e)  
        {
  etc...
        }
 
        /* attente de récuperation des informations de la socket client */
        Socket clientSocket = null;
        try  
        {
etc...
        }
        catch (IOException e)
        {
      etc...
   }
         
    }
}
 
 
 
ben ma question est simple, comment faire sachant que quand j'utilise mon second prog avec un public static void main il fonctionne, mais dés qu'il devient une classe tout seule, il ne fonctionne plus avec le throws IOexception.
 
Merci.
(en esperant avoir été assez précis)

Reply

Marsh Posté le 15-02-2002 à 10:19:15   

Reply

Marsh Posté le 15-02-2002 à 10:21:51    

tu interceptes ton excepion (catch) et en meme temps tu la renvoie (throws). Ca n'a pas bcp d'intéret  
 
et la méthode qui crée l'objet Lunch n'intercepte pas ton renvoie, donc il n'aime pas

 

[jfdsdjhfuetppo]--Message édité par jupiler--[/jfdsdjhfuetppo]


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 15-02-2002 à 10:27:03    

donc faudrait il que je fasse un  
FenetreServeur() throws IOexception dans le premier prog et que je retire du second ? m'enfin c'est comme cela que je comprend ton explication  
 
merci encore de ton aide.

Reply

Marsh Posté le 15-02-2002 à 10:32:22    

Non surtout pas!
 
 
il ne faut pas s'amuser à renvoyer les exceptions à chaque fois.
Quand tu l'as intercepté une fois par le catch, tu n'as plus besoin de la renvoyer à la méthode appelante
 
 
 
tu enlèves simplement le throws IOException au niveau de la déclaration de ta méthode lunch() et ca devrait etre bon


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 15-02-2002 à 10:52:15    

désolé du temps de réponse mais internet et java sont sur deux cessions differentes (d'où le temps de reponse à cause des tests).  
Si je retire le throws du second programme, et bien il ne compile plus dans ce cas car il ne reçoit pas d'exception.
 
Je continue mes tests et ma recherche mais là je suis un peu bloqué.

Reply

Marsh Posté le 15-02-2002 à 10:54:38    

il te met quoi comme erreur si tu enlèves le throws


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 15-02-2002 à 11:07:28    

si je retire le throws, le second prog ne compile plus et il me met 6 ou 7 unreported exception java.io.IOException. Alors que avant il me compilait gentillement le prog (m'enfin le second). Donc il faut surement mettre un throw kkpart pour qu'il puisse intercepter les exceptions, mais il faut aussi le mettre dans le premier programme, mais là je ne vois pas trop ou ??
 
cela va finir pas un sévère reboot moi je vous le dis.

Reply

Marsh Posté le 15-02-2002 à 11:16:34    

doit forcément y avoir dans ta méthode lunch une instruction qui lève une exception et n'est pas incluse dans un des blocs try.
 
si tu veux, laisse le throws, mais dans le constructeur FenetreServeur(), tu rajoutes un bloc try .. catch :
 
try {
    LunchServer.lunch();
}
catch (IOException e) {}


---------------
Je ne suis ni pour, ni contre, bien au contraire  
Reply

Marsh Posté le 15-02-2002 à 11:35:21    

merci jupiler, cela fonctionne maintenant avec un try et catch à l'appel de la fonction. Il ne me reste plus qu'à bien approfondir ce mechanisme.
 
 :hello:

Reply

Sujets relatifs:

Leave a Replay

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