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;
		try {
			dp = new DatagramPacket(bytes, bytes.length, socketAddress);
		} catch (SocketException e) {
			e.printStackTrace();
		}
		return 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.