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.