În Java 8, constructorii java.net.DatagramPacket care acceptă
argumentul java.net.SocketAddress au înlăturat declaraţia că
poate fi aruncată o SocketException.
Anterior versiunii Java 8, constructorii java.net.DatagramPacket au declarat
că poate fi aruncată o java.net.SocketException, dar excepţia nu a fost niciodată aruncată de către acei constructori.
Această regulă semnalează constructorii DatagramPacket care includ
argumentul SocketAddress şi care sunt înconjuraţi de un bloc try care prinde
SocketException sau superclasa sa java.io.IOException, după cum se arată în următorul exemplu:
public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; try {
dp = noul DatagramPacket (bytes, bytes.length, socketAddress);} {
e.printStackTrace();
}SocketException
retur dp;}
Următorii constructori DatagramPacket sunt afectaţi:
public DatagramPacket(byte[] buf,
int offset,
int length,
SocketAddress address)
public DatagramPacket(byte[] buf,
int length,
SocketAddress address)
Dacă nici un alt cod din cadrul blocului try nu aruncă
SocketException, când compilaţi cu Java 8, o eroare va
indica faptul că excepţia este de neatins.
Înlăturaţi blocul catch astfel încât să nu apară eroarea.
Pentru informaţii suplimentare despre clasa java.net.DatagramPacket,
vedeţi documentaţia Java
Class java.net.DatagramPacket.