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.