DatagramPacket 생성자를 SocketAddress와 함께 사용하면 SocketException을 더 이상 선언하지 않음

Java 8에서, java.net.SocketAddress 인수를 허용하는 java.net.DatagramPacket 생성자가 SocketException이 발생할 수 있다는 선언을 제거했습니다. Java 8 이전에서, java.net.DatagramPacket 생성자가 java.net.SocketException이 발생할 수 있다고 선언했지만, 이 예외는 해당 생성자로 발생하지 않았습니다.

이 규칙은 다음 예제에 표시된 대로 SocketException 또는 해당 수퍼클래스 java.io.IOException이 발생하는 try 블록에서 둘러싸는 SocketAddress 인수를 포함하는 DatagramPacket 생성자에 플래그를 지정합니다.

	public DatagramPacket getDatagramPacket (SocketAddress socketAddress, byte [] bytes) { DatagramPacket dp = null; try {
			dp = new DatagramPacket (bytes, bytes.length, socketAddress);} catch (SocketException e) {
			e.printStackTrace();
		}
		리턴 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.net.DatagramPacket Java 문서를 참조하십시오.