DatagramPacket-Konstruktor mit SocketAddress deklariert keine SocketException mehr

In Java 8 wurde in java.net.DatagramPacket-Konstruktoren, die ein java.net.SocketAddress-Argument akzeptieren, die Deklaration einer auslösbaren Ausnahme des Typs SocketException entfernt. In den Java-Versionen vor Java 8 deklarieren java.net.DatagramPacket-Konstruktoren, dass eine Ausnahme des Typs java.net.SocketException ausgelöst werden kann, aber die Ausnahme wird von diesen Konstruktoren nie ausgelöst.

Diese Regel markiert DatagramPacket-Konstruktoren, die ein SocketAddress-Argument in einem try-Block enthalten, der Ausnahmen des Typs SocketException oder der Superklasse java.io.IOException abfängt, wie im folgenden Beispiel gezeigt:

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

Die folgenden DatagramPacket-Konstruktoren sind betroffen:

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

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

Wenn bei der Kompilierung mit Java 8 kein anderer Code im try-Block eine Ausnahme des Typs SocketException auslöst, zeigt ein Fehler an, dass die Ausnahme nicht erreichbar ist. Entfernen Sie den catch-Block, damit der Fehler nicht auftritt.

Weitere Informationen zur Klasse java.net.DatagramPacket finden Sie in der Java-Dokumentation zur Klasse java.net.DatagramPacket.