unreported exeption java.io.IOexption [java] - Programmation
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]
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.
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
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é.
Marsh Posté le 15-02-2002 à 10:54:38
il te met quoi comme erreur si tu enlèves le throws
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.
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) {}
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.
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)