A SocketAddress paraméterrel rendelkező DatagramPacket konstruktor már nem deklarál SocketException kivételt

A Java 8 változatban a java.net.DatagramPacket konstruktorok, amelyek egy java.net.SocketAddress argumentumot fogadnak, eltávolították a deklarációt, amellyel egy SocketException kivétel dobható. A Java 8 előtt a java.net.DatagramPacket konstruktorok deklarálták, hogy egy java.net.SocketException dobható, azonban ezek a konstruktorok soha nem dobták ezt a kivételt.

Ez a szabály megjelöli a DatagramPacket konstruktorokat, amelyek tartalmaznak egy SocketAddress argumentumot egy try blokkban, amely egy SocketException vagy ennek ősosztályából (java.io.IOException) származó kivételt kap el, ahogy a következő példában látható:

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

A következő DatagramPacket konstruktorok érintettek:

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

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

Ha a try blokkon belül nincs más SocketException kivételt dobó kód, akkor Java 8 változattal történő fordításkor egy hiba fogja jelezni, hogy a kivétel nem érhető el. Távolítsa el a catch blokkot, hogy a hiba ne forduljon elő.

A java.net.DatagramPacket osztállyal kapcsolatos további információkért tekintse meg a java.net.DatagramPacket osztály Java dokumentációját.