程序的容错性很重要.
容错性越好,兼容性就越好.比如浏览器解析css时就有很灵活的容错性.当遇到错误的css样式时就直接忽略,而不会报错.忽略错误的样式,就是容错.有什么好处呢?体现在浏览器的兼容性上.比如border-radius是HTML5的属性,IE9支持,但是IE8支持.可是我们再IE8中运行时依然正常,而不会因为报错导致不解析网页样式.
Java中也有容错性.比如我之前写了一个方法
@Deprecated public static String getFullContent(File file) { BufferedReader reader = null; if (!file.exists()) { System.out.println("getFullContent: file(" + file.getAbsolutePath() + ") does not exist."); return null; } try { reader = getBufferReaderFromFile(file); return getFullContent(reader); } catch (FileNotFoundException e1) { e1.printStackTrace(); } finally { if (null != reader) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; }
该方法只有一个参数,但是后来我发现应该增加一个参数编码,于是修改上述方法为:
public static String getFullContent(File file, String charset) { BufferedReader reader = null; if (!file.exists()) { System.out.println("getFullContent: file(" + file.getAbsolutePath() + ") does not exist."); return null; } if (charset == null) { charset = SystemHWUtil.CHARSET_ISO88591; } try { reader = getBufferReaderFromFile(file, charset); return getFullContent(reader); } catch (FileNotFoundException e1) { e1.printStackTrace(); } finally { if (null != reader) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } return null; }
修改完了就OK 了吗?
因为这是一个通用的工具类,所以只要用到这个方法的地方都报错了.为什么?因为方法签名改变了!!!
虽然我方法的功能增强了,可是我破坏了兼容性.
后来我增加一个方法:
public static String getFullContent(File file) { return getFullContent(file, null); }
就好了.
所以我就给自己定了一个规矩:以后增加一个方法的参数时,一定要保留原来的签名.
比如之前写了方法A(x,y)
后来扩充了功能,变为:A(x,y,z),那么我同时肯定会增加一个方法
A(x,y)
{
A(x,y,null)
}
相关推荐
计算机数据库以及系统容错性处理精选文档.doc
开箱即用,简单粗暴Elasticsearch天然支持分布式和集群,开箱即用,零配置,零改动。自动分片一个index默认5个primaryshard,那么我们创建一个document,他给我们分配到哪个shard上了呢?搜索的时候又是怎么知道我们...
采用子网和概率模型对E-2DMesh网络在节点随机出错概率下的容错性进行分析,推出不同时间下的不同规模的E-2DMesh网络的连通概率下界,并且运用严密的数学方法推导出网络连通率与其节点出错概率的关系。实验结果表明以...
#资源达人分享计划#
一个好的方法是将测试系统全部的对象用一张系统结构图描绘出来,以图中所有可能发生的故障点设计测试用例。在系统结构图中存在单点失效的关键对象,就是设计的缺陷。
软件工程中的可靠性与容错性.pptx
基于SRAM型FPGA的容错性设计.pdf
计算机在现代军事装备中的作用日益重要,他在装备研制中所占工作i-的比例越来越大。由于军用计算机的工作环境一般较...本文综合分析嵌入式系统中提高计算机容错性的常用技术,并给出采用软件恢复块实现掉电恢复的实例。
Apache Spark源码走读之5 -- DStream处理的容错性分析
软件工程与软件系统可容错性评估.pptx
音视频-编解码-图像编码中容错性的应用研究.pdf
既然出错不可避免,那么如何进行容错性设计才是关键。容错性设计就是当错误发生时,人们看到的界面。就像对付不该发生的错误一样,容错性设计的关键在于“做好防御”。产品设计者们必须不断寻找可能造成用户困惑和...
电子政务-利用故障电流相对误差提高配电网故障定位容错性的方法.zip
虽然功能叫hpjmeter简单,界面也不咋地 不过容错性要比hpjmeter强很多,虽然快照中所有性能指标都挤在一起,但是很直观 总体来说比较强悍,特收金币一枚...
一个矢量数据库,它存储对象和矢量,允许将矢量搜索与结构化过滤结合起来,具有云原生数据库的容错性和可伸缩性,所有这些都可以通过GraphQL、REST和各种语言客户端访问。
hystrix-py, 分布式系统的延迟和容错性 hystrix-py 一个用于 python的Netflix Hystrix端口。这是一个正在进行中的工作,请你放心 ! 什么是 Hystrix?有关更多信息,请参见 [Netflix Hystrix] ( https
#资源达人分享计划#