异常处理:特定套接字的异常

本文探讨了网络编程中常见的异常情况,如无法解析主机名、连接断开或锁定等问题。介绍了几种特定的套接字异常,包括SocketException、BindException、ConnectException等,并提供了实例代码以帮助理解这些异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网络作为通讯的媒介充满了各种问题。随着大量的计算机连接到了全球Internet,遭遇到某
个主机名称无法解析、某个主机从网络断开了、或者某个主机在连接的过程中被锁定了的情形在
软件应用程序的生存周期中是很可能遇到的。因此,知道引起应用程序中出现的这类问题的条件
并很好的处理这些问题是很重要的。当然,并不是每个程序都需要精确的控制,在简单的应用程
序中你可能希望使用通用的处理方法处理各种问题。但是对于更高级的应用程序,了解运行时可
能出现的特定套接字异常是很重要的。

  注意

  所有的特定套接字异常都扩展自SocketException,因此通过捕捉该异常,你可以捕捉到所有
的特定套接字的异常并编写一个通用的处理程序。此外,SocketException扩展自
java.io.IOException,如果你希望提供捕捉所有I/O异常的处理程序可以使用它。

  1、 SocketException

  java.net.SocketException表现了一种通用的套接字错误,它可以表现一定范围的特定错误
条件。对于更细致的控制,应用程序应该捕捉下面讨论的子类。

  2、 BindException

  java.net.BindException表明没有能力把套接字帮定到某个本地端口。最普通的原因是本地
端口已经被使用了。

  3、ConnectException

  当某个套接字不能连接到特定的远程主机和端口的时候,java.net.ConnectException就会发
生。发生这种情况有一个原因,例如远程服务器没有帮定到某个端口的服务,或者它被排队的查
询淹没了,不能接收更多的请求。

  4、 NoRouteToHostException

  当由于出现网络错误,不能找到远程主机的路由的时候产生
java.net.NoRouteToHostException异常。它的起因可能是本地的(例如软件应用程序运行的网络
正在运行),可能是临时的网关或路由器问题,或者是套接字试图连接的远程网络的故障。另一
个普通原因是防火墙和路由器阻止了客户端软件,这通常是个持久的限制。

  5、InterruptedIOException

  当某个读取操作被阻塞了一段时间引起网络超时的时候产生
java.net.InterruptedIOException异常。处理超时问题是使代码更加牢固和可靠的很好的途径。

 

 

今天我就遇到了2008-03-30 21:54:52,621 ERROR [STDERR] java.sql.SQLException: JZ006: Caught IOException: java.net.NoRouteToHostException: No route to host

的错误,我tail -f  看jboss的日志持续观察,后来就没有这个错误了。

然后访问就正常了。难道是是本地的(例如软件应用程序运行的网络
正在运行),可能是临时的网关或路由器问题,或者是套接字试图连接的远程网络的故障?



   System.out.println("begin");
     try {
   Socket    socket   =   new   Socket(InetAddress.getByName( "192.168.135.214"),2066);
  } catch (UnknownHostException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  
  
           System.out.println("end??");

这段codes可以看exceptions。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值