2010-10-20 3 views
0

Je suis très nouveau à la programmation en Java mais j'ai beaucoup d'expérience en .NET (C# & vb.net). J'essaie de créer une nouvelle instance d'une classe serversocket dans Eclipse IDE et quand je tape le code suivant, il me donne une "Exception IOException non gérée" et je n'ai même pas encore essayé d'exécuter le code !!Impossible de créer une ServerSocket en eclipse (java)

Je ne comprends pas comment mon code est une exception avant l'exécution ou ce que je peux faire pour le réparer.

Quelqu'un peut-il m'aider?

Code Offending:

ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost()); 

Répondre

0

Ceci est une fonctionnalité du langage Java appelé Checked Exceptions. Fondamentalement, il existe des exceptions dans le code que vous appelez qui peuvent être déterminées au moment de la compilation. Les concepteurs de langage Java ont pensé qu'il était prudent de vous forcer à les manipuler.

Dans ce cas, le constructeur de la classe ServerSocket, dans sa signature de méthode, déclare qu'il lève une exception IOException.

Il existe deux façons de faire disparaître l'erreur de compilation.

Vous pouvez envelopper le code dans un try/catch.

try 
{ 
    ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost()); 
} catch (IOException e) 
{ 
    // handle exception 
} 

Vous pouvez également transférer la responsabilité à la méthode d'appel. Par exemple, supposons que vous avez appelé le constructeur ServerSocket à l'intérieur d'une méthode appelée createSocket(). Vous devrez déclarer votre méthode comme si

public ServerSocket createSocket() throws IOException 
{ 
    ServerSocket server = new ServerSocket(1234, 5, InetAddress.getLocalHost()); 
    return server; 
} 

Dans ce cas, vous êtes juste la responsabilité remonter la chaîne d'appel, mais parfois ce sens.

Ceci est si commun dans le langage Java qu'Eclipse offre les deux options ci-dessus en tant que solutions rapides.

1

Si elle donne "type d'exception non gérée IOException", dans le fichier java lors de l'édition, cela signifie que vous devez joindre cette déclaration
dans le bloc try-catch

try {

Serveur ServerSocket = new ServerSocket (1234, 5, InetAddress.getLocalHost());
} catch (IOException ex) {

e.printStackTrace();
}

+0

merci viv .. est-ce normal pour le codage java? gérer les exceptions qui peuvent se produire avant qu'ils ne le fassent? – Grant

+0

C'est une bonne pratique à faire, mais certains où il veut qu'une exception d'un type particulier doit être traitée. En règle générale, vous devez inclure tout votre code dans try-catch, c'est une bonne pratique. – viv

Questions connexes