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