Dans Java 8, les constructeurs java.net.DatagramPacket qui acceptent un argument
java.net.SocketAddress ont retiré la déclaration indiquant qu'une exception
SocketException peut être émise.
Avant Java 8, les constructeurs java.net.DatagramPacket déclaraient qu'une exception
java.net.SocketException pouvait être émise mais l'exception n'a jamais été émise par ces constructeurs.
Cette règle marque les constructeurs DatagramPacket qui incluent un argument
SocketAddress et qui sont entourés d'un bloc try qui intercepte l'exception
SocketException ou sa superclasse java.io.IOException, comme cela est présenté
dans l'exemple suivant :
public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [ ] bytes) { DatagramPacket dp = null ; try {
dp = new DatagramPacket (bytes, bytes.length, socketAddress); } catch (SocketException e) {
e.printStackTrace();
}
retour dp ; }
Les constructeurs DatagramPacket suivants sont concernés :
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
public DatagramPacket(byte[] buf,
int length,
SocketAddress address)
Si aucun autre code du bloc try n'émet d'exception
SocketException, une erreur indiquant que l'exception
est inaccessible est générée lors de la compilation avec
Java 8.
Retirez le bloc catch afin que l'erreur n'ait pas lieu.
Pour plus d'informations sur la classe java.net.DatagramPacket, voir la documentation Java
Class java.net.DatagramPacket.