Constructorul DatagramPacket cu SocketAddress nu mai declară SocketException

În Java 8, constructorii java.net.DatagramPacket care acceptă argumentul java.net.SocketAddress au înlăturat declaraţia că poate fi aruncată o SocketException. Anterior versiunii Java 8, constructorii java.net.DatagramPacket au declarat că poate fi aruncată o java.net.SocketException, dar excepţia nu a fost niciodată aruncată de către acei constructori.

Această regulă semnalează constructorii DatagramPacket care includ argumentul SocketAddress şi care sunt înconjuraţi de un bloc try care prinde SocketException sau superclasa sa java.io.IOException, după cum se arată în următorul exemplu:

	public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; try {
			dp = noul DatagramPacket (bytes, bytes.length, socketAddress);} {
			e.printStackTrace();
		}SocketException
		retur dp;}

Următorii constructori DatagramPacket sunt afectaţi:

public DatagramPacket(byte[] buf,
                      int offset,
                      int length,
                      SocketAddress address)

public DatagramPacket(byte[] buf,
                      int length,
                      SocketAddress address)

Dacă nici un alt cod din cadrul blocului try nu aruncă SocketException, când compilaţi cu Java 8, o eroare va indica faptul că excepţia este de neatins. Înlăturaţi blocul catch astfel încât să nu apară eroarea.

Pentru informaţii suplimentare despre clasa java.net.DatagramPacket, vedeţi documentaţia Java Class java.net.DatagramPacket.