En Java 8, los constructores java.net.DatagramPacket que aceptan
un argumento java.net.SocketAddress han eliminado la declaración
de que se puede emitir una excepción SocketException.
En las versiones anteriores a Java 8, los constructores
java.net.DatagramPacket declaraban que se podía emitir una
excepción java.net.SocketException, pero la excepción no era
emitida nunca por esos constructores.
Esta regla señala los constructores DatagramPacket que incluyen
un argumento SocketAddress y que están rodeados por un bloque Try
que captura una excepción SocketException o su superclase
java.io.IOException, tal como se muestra en el ejemplo siguiente:
public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; try {
dp = new DatagramPacket (bytes, bytes.length, socketAddress);} catch (SocketException e) {
e.printStackTrace();
}
dp de retorno;}
La regla afecta a los constructores DatagramPacket siguientes:
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
public DatagramPacket(byte[] buf,
int length,
SocketAddress address)
Si ningún otro código dentro del bloque try emite una excepción
SocketException, cuando compile con Java 8, un error indicará que
la excepción no es accesible.
Elimine el bloque catch para que no se produzca el error.
Para obtener más información sobre la clase
java.net.DatagramPacket, consulte la documentación de Java de
Class java.net.DatagramPacket.