快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

亚博娱乐国际最新版本:Java网络编程从入门到精通(19):套接字(Socket)的异常



在Socket类中有很多措施在声明时应用throws抛出了一些非常,这些非常都是IOException的子类。亚博娱乐国际最新版本在Socket类的措施中抛出最多的便是SocketException,另外还有七个非常可供Socket类的措施抛出。这些非常的承袭关系如图1所示。此中灰色背景框所描述的例外便是Socket类的措施可能抛出的非常。

图1非常类承袭关系图

public class IO亚博娱乐国际最新版本Exception extends Exception

这个非常是所有在Socket类的措施中抛出的非常的父类。是以,在应用Socket类时只要捕捉(catch)这个非常就可以了;当然,为了同时捕捉其它类中的措施的非常,也可以直接捕捉Exception.

public class SocketException extends IOException

这个非常在Socket类的措施中应用得最频繁。它也代表了所有和收集有关的非常。但假如要想知道详细发生的哪一类的非常,就必要捕捉更详细的非常了。

public class ConnectException extends SocketException

ConnectException非常平日发生在因为办事器忙而未相应或是办事器响应的监听端口未打开。如下面的语句将抛出一个ConnectException非常。

Socket socket = new亚博娱乐国际最新版本 Socket("www.ptpress.com.cn", 1234);

public class BindException extends SocketException

这个非常在多个Socket或ServerSocket工具绑定在同一个端口,而且未打开SO_REUSEADDR选项时发生。如下面的四条语句将抛亚博娱乐国际最新版本出一个BindException非常:

Socket socket1 = new Socket();

Socket socket2 = new Socket();

socket1.bind(new InetSocketAddress("127.0.0.1", 1234));

socket2.bind(new InetSocketAddress("127.0.0.1", 1234));

public class NoRouteToHostException extends SocketException

这个非常在碰到防火墙或是路由无法找到主机的环境下发生。

public class UnknownHostException extends IOException

这个非常在域名不精确时被抛出。如下面的语句将抛出一个UnKnownHostException非常:

Socket socket1 = new Socket("www.ptpress123.com.cn", 80);

publi亚博娱乐国际最新版本c class ProtocolException extends IOException

这个非常并不常常被抛出。因为不明的缘故原由,TCP/IP的数据包被破坏了,这时将抛出ProtocolException非常。

public class SocketTimeoutException extends InterruptedIOException

假如在连接超时和读取数据超韶光阴过后,办事器仍旧未相应,connect或read措施将抛出SocketTimeoutException非常。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: