Il costruttore DatagramPacket con SocketAddress non dichiara più SocketException

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.