In Java 8, il costruttore java.net.DatagramPacket che accetta un argomento java.net.SocketAddress ha rimosso la dichiarazione che è possibile generare un'eccezione SocketException.
Prima di Java 8, il costruttore java.net.DatagramPacket dichiarava che poteva essere generata un'eccezione java.net.SocketException, ma tale eccezione non è stata mai generata da questi costruttori.
Questa regola contrassegna i costruttori DatagramPacket che includono un argomento SocketAddress che sono circondati da un blocco try che cattura la SocketException o la relativa superclasse java.io.IOException, come mostrato nel seguente esempio:
public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; provare {
dp = new DatagramPacket (byte, bytes.length, socketAddress);} catch (SocketException e) {
e.printStackTrace();
}
restituisce dp;}
Sono interessati i seguenti costruttori DatagramPacket:
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
public DatagramPacket(byte[] buf,
int length,
SocketAddress address)
Se nessun altro codice all'interno del blocco try genera un'eccezione SocketException, quando si compila con Java 8 un errore indicherà che l'eccezione è irraggiungibile.
Rimuovere il blocco catch in modo da evitare che si verifichi l'errore.
Per informazioni sulla classe java.net.DatagramPacket, consultare la documentazione Java Class java.net.DatagramPacket.