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ó:

	Nyilvános DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] byte) { DatagramPacket dp = null; próbálja meg {
			Dp = új DatagramPacket (byte, bytes.length, socketAddress);} fogás (SocketException e) {
			e.printStackTrace();
		}
		Visszatérési 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.