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.