В Java 8 у конструкторов java.net.DatagramPacket с параметром java.net.SocketAddress
удалено объявление SocketException в спецификаторе throws.
До Java 8 в спецификаторе throws конструкторов java.net.DatagramPacket была объявлена
исключительная ситуация java.net.SocketException, но она в них никогда не возникала.
Это правило помечает конструкторы DatagramPacket с параметром SocketAddress,
находящиеся в блоке try с обработчиком SocketException или java.io.IOException
(см. следующий пример).
public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) {
DatagramPacket dp = null; try {
dp = новый DatagramPacket (bytes, bytes.length, socketAddress); } catch (SocketException e) {
e.printStackTrace();
}
return dp; }
Затрагиваются следующие конструкторы DatagramPacket:
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
public DatagramPacket(byte[] buf,
int length,
SocketAddress address)
Если в остальном коде блока try исключительная ситуация SocketException
не возникает, то при компиляции для Java 8 возникнет ошибка, указывающая на исключительную
ситуацию, которая никогда не возникает.
Удалите блок catch, чтобы устранить эту ошибку.
Дополнительная информация о классе java.net.DatagramPacket
приведена в документации Java по классу java.net.DatagramPacket.