虽然说网络连接在大多数情况下,都是正常的,但大家在互联网上冲浪的时候,肯定都遇到过网络不正常的情况,比如大家在上XX网站的时候,经常会被提示:该网站暂不可用/该访问被拒绝/找不到该网站等等,你懂得。因此,网络是不可靠的,我们在网络编程的时候,也要时刻记住,网络是不可能一直正常的,在实现任何涉及网络连接的功能时,都必须考虑到如何处理各种网络异常。比如,有两个业务系统A和B,A需要调用B的某个服务,那么我们在设计和实现这个功能的时候,就不能认为系统A总是能够成功连接上系统B,并且还能成功从系统B返回其所需要的数据。合理的思维流程应该是这样的:我们把系统A调用系统B的服务这一过程细分为以下几个阶段:
- A连接B
- A发送数据给B
- B执行A请求的服务
- B将结果返回给A
在这上面的四个阶段1, 2, 4都可能会发生各种IOException,在阶段1中,系统A在请求连接系统B的时候,可能发送以下异常:UnknownHostException,UnknownServiceException或者PortUnreachableException等;在阶段2和4中,就可能发生SocketTimeoutException等。
既然我们知道网络是不稳定的,会发生各种异常情况,那么我们要做的除了捕获这些异常,更重要的是还要处理这些异常。同样以我们浏览XX网站为例,当我们发现XX网站不能访问时,无非采取以下做法:
- 隔一段时间刷新下页面,看是不是能访问了
- 看看是不是这个网站被屏蔽了,需要启用代理来访问
- 看看是不是这个网站的域名变更了
- 既然上不了,那哥就不上了,你爱咋咋得;
- 既然上不了,拿哥通过google/baidu找另外的XX网站
那么我在网络编程的时候遇到上面提到的各种IOException,采取的措施无非也是这几个做法的抽象而已。
- 不停刷新----系统A不停重试系统B的服务,直到成功为止
- 启动代理访问---看是不是权限不够,通过代理去调用系统B
- 域名变了----更换请求地址,重新请求
- 哥不上了----不再请求系统B的服务,系统A去执行其它的业务逻辑
- 找另外的XX网站---变更服务提供方,比如系统A去向back up的系统请求服务
以上就是对网络异常的认识以及处理方法的一点自己的总结,记录下来,以便以后查看和改进。
分享到:
相关推荐
藏经阁-打击网络黑产浅见分享.pdf
校园网的网络安全问题之浅见.pdf
关于p2p网络技术的一些内容,供大家分享,很实用的
网络交易监管中流通环节食品安全监管问题的浅见宣贯.pdf
C语言教学改革浅见
产品思维浅见.pptx
个人二次开发浅见
IE加载项浅见.docx
区域经济发展个人浅见.docx
高校聘用制改革浅见.docx
NOKIA销售策略方案浅见.ppt
小议数学过程之浅见.doc
完善内控制度之浅见.docx
水利 白洋淀防洪治理工作之浅见详细文档 内部资料
企业信息化建设之浅见.docx
教育乡村留守儿童的浅见.docx
循环流化床锅炉运行浅见pdf,循环流化床锅炉运行浅见
高中地理课堂创新教学浅见.doc
智能化系统建设之浅见.pdf
建设水土保持生态文明之浅见.pdf