Le constructeur DatagramPacket avec un argument SocketAddress n'émet plus d'exception SocketException

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.