O construtor DatagramPacket com SocketAddress não declara mais o SocketException

No Java 8, os construtores java.net.DatagramPacket que aceitam um argumento java.net.SocketAddress removeram a declaração de que um SocketException pode ser lançado. Antes do Java 8, os construtores java.net.DatagramPacket declaravam que um java.net.SocketException podia ser lançado, mas a exceção nunca era lançada por esses construtores.

Essa regra sinaliza construtores DatagramPacket que incluem um argumento SocketAddress e que são circundados por um bloco try que captura SocketException ou sua superclasse java.io.IOException, conforme mostrado no exemplo a seguir:

	public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; tente {
			dp = new DatagramPacket (bytes, bytes.length, socketAddress);} catch (SocketException e) {
			e.printStackTrace();
		}
		retornar dp;}

Os construtores DatagramPacket a seguir são afetados:

public DatagramPacket(byte[] buf,
                      int offset,
                      int length,
                      SocketAddress address)

public DatagramPacket(byte[] buf,
                      int length,
                      SocketAddress address)

Se nenhum outro código no bloco try lançar um SocketException, ao compilar com o Java 8, um erro indicará que a exceção é inatingível. Remova o bloco catch para que o erro não ocorra.

Para obter mais informações sobre a classe java.net.DatagramPacket, consulte a documentação Java Classe java.net.DatagramPacket.