当前位置: 首页 > news >正文

前端开发为什么不用dw百度seo工作室

前端开发为什么不用dw,百度seo工作室,深圳网站推广公司,徐州关键字优化公司检查参数的有效性 绝大多数方法和构造方法对于传递给它们的参数都会有某些限制,比如对象引用不能为null,比如必须是正数等.你应该在文档中(或者注释中)清楚地指出所有这些限制,并且在方法体的开头检查参数,并且强制施加这些限制.如果做不到这一点,检测出错误的可能性就很小,即…

检查参数的有效性

绝大多数方法和构造方法对于传递给它们的参数都会有某些限制,比如对象引用不能为null,比如必须是正数等.你应该在文档中(或者注释中)清楚地指出所有这些限制,并且在方法体的开头检查参数,并且强制施加这些限制.如果做不到这一点,检测出错误的可能性就很小,即使检测出错误,也难以确定错误根源.

共有方法参数检查

对于共有方法,要用javadoc的@throw标签在文档中说明违反参数值限制会抛出异常.
常用的异常如下:
IllegalArgumentException 非null的参数不正确
IllegalStateExcetion 对于方法调用而言,对象状态不正确
NullPointException 在禁止使用null的情况下参数值为null
IndexOutOfBoundException 下标参数值越界
ConcurrentModificationException 禁止并发修改情况下,对象进行修改
UnsupportedOperationException 对象不支持用户请求的方法
一旦在文档中记录对于方法参数的限制,并且记录一旦违反这些限制将抛出异常,强加这些限制就是必须的事情了.例如:

/*** 求模运算* @param m the modulus,which must be positive* @return this mod m* @throwsArithmeticException if m is less then or equal to 0*/public int mod(BigInteger m){if (m.signum() <= 0 ) {throw new ArithmeticException("Modulus <=0 :  " + m);}return this.n.signum() % m.signum();}

非公有方法参数检查

对于私有方法而言,你可以控制这个方法在那些情况下被调用,必须确保只将有效的参数传递进来.所以,非公有方法一般使用断言来检查参数的有效性.例如:

private static void sort(long[] a, int offset, int length) {assert a != null;assert offset >= 0 && offset <= a.length;assert length >= 0 && length <= a.length -offset;//do something}

本质上讲,断言是在声称被断言的条件为真,无论外围包的客户端如何使用它,异于有效性检查,断言失败将会抛出AsserttionError.如果断言没有发生作用,本质上不会产生成本开销.(vm参数 -ea来开启)

保留的方法参数检查

对于有些参数,方法本身没有用到,保存起来供以后使用.检测这些参数的有效性尤为重要.
例如:

static List<Integer> intArrayAsList (final int[] a) {if (a == null) {throw new NullPointerException();}return new AbstractList<Integer>() {@Overridepublic Integer get(int index) {return a[index];}@Overridepublic int size() {return a.length;}};}

示例中,传入一个int数组,返回List视图.如果这个方法的客户端传递null,该方法会抛出一个NullPointerException,因为该方法显示的条件检查.
如果忽略这个条件检查,就是返回一个新建的List实例的引用,一旦客户端企图使用这个引用,就会立即抛出空指针异常,那时候想要找出List实例的来源就可能非常困难,使得开发调试工作极大地复杂化.
有些参数被方法保护起来供以后使用,构造方法代表这种原则的特殊情景,所以检查构造方法参数的有效性是非常重要的,可以避免构造出来的对象违反类的约束条件.

例外情况

在方法执行计算任务之前,应该先检查它的参数,这个规则有例外.一个重要的例外是,有效性检查非常昂贵,或者根本不切实际,或者有效性检查已经隐含在计算过程中完成.例如:考虑为一个对象排序的方法:
Collections.sort(List),列表中的所有对象必须是可以相互比较的.在为列表排序过程中,列表中的每个对象与其他对象进行比较.
如果这些对象不能进行比较,其中的某个比较操作就会发生异常ClassCastException,这正是sort方法应该做的事情.因此,提前检查列表的元素是否可以进行比较,这并没有多大的意义.
然而,请注意,不加选择使用这种方法将会导致失去失败原子性(以后异常会说到失败原子性,参考第64条).

总结

当编写方法或者构造方法的时候,应该考虑它的参数有哪些限制,应该把这些限制写到文档中,并且在这个方法的开头处,通过显示的检查来实施这些限制.养成这个习惯是非常必要的.


文章转载自:
http://pyretology.c7617.cn
http://dustup.c7617.cn
http://vw.c7617.cn
http://astrogate.c7617.cn
http://condescendence.c7617.cn
http://eustace.c7617.cn
http://mossiness.c7617.cn
http://daze.c7617.cn
http://shears.c7617.cn
http://congestion.c7617.cn
http://unclaimed.c7617.cn
http://querist.c7617.cn
http://oland.c7617.cn
http://sanitize.c7617.cn
http://coil.c7617.cn
http://escabeche.c7617.cn
http://smaragd.c7617.cn
http://pulperia.c7617.cn
http://velveret.c7617.cn
http://toryism.c7617.cn
http://substantify.c7617.cn
http://considerate.c7617.cn
http://vesuvian.c7617.cn
http://whosoever.c7617.cn
http://apagogic.c7617.cn
http://bahamas.c7617.cn
http://stamper.c7617.cn
http://producer.c7617.cn
http://diamantiferous.c7617.cn
http://agitated.c7617.cn
http://syncaine.c7617.cn
http://biscay.c7617.cn
http://amyloid.c7617.cn
http://neaped.c7617.cn
http://rainsquall.c7617.cn
http://amorce.c7617.cn
http://monofil.c7617.cn
http://squandermania.c7617.cn
http://liftgate.c7617.cn
http://petit.c7617.cn
http://aare.c7617.cn
http://vasoinhibitor.c7617.cn
http://seventeen.c7617.cn
http://pinnacle.c7617.cn
http://jucar.c7617.cn
http://cannabic.c7617.cn
http://trustful.c7617.cn
http://australorp.c7617.cn
http://estrangedness.c7617.cn
http://branch.c7617.cn
http://embrocation.c7617.cn
http://ungodly.c7617.cn
http://spoke.c7617.cn
http://pillbox.c7617.cn
http://synezesis.c7617.cn
http://leash.c7617.cn
http://yearning.c7617.cn
http://xanthin.c7617.cn
http://boletus.c7617.cn
http://lighterman.c7617.cn
http://cadency.c7617.cn
http://twx.c7617.cn
http://radically.c7617.cn
http://upon.c7617.cn
http://conferrer.c7617.cn
http://dentolingual.c7617.cn
http://irascible.c7617.cn
http://inwit.c7617.cn
http://compaction.c7617.cn
http://jackadandy.c7617.cn
http://handwheel.c7617.cn
http://dick.c7617.cn
http://controvert.c7617.cn
http://fab.c7617.cn
http://ujamaa.c7617.cn
http://prairillon.c7617.cn
http://gerontomorphosis.c7617.cn
http://antiphlogistin.c7617.cn
http://philabeg.c7617.cn
http://jinmen.c7617.cn
http://doubled.c7617.cn
http://hippie.c7617.cn
http://ungird.c7617.cn
http://cravenly.c7617.cn
http://sirian.c7617.cn
http://msls.c7617.cn
http://ferricyanide.c7617.cn
http://mystificator.c7617.cn
http://destabilize.c7617.cn
http://stargazer.c7617.cn
http://hologynic.c7617.cn
http://recumbently.c7617.cn
http://gallanilide.c7617.cn
http://earning.c7617.cn
http://inefficiency.c7617.cn
http://riukiu.c7617.cn
http://endochondral.c7617.cn
http://fijian.c7617.cn
http://pipeless.c7617.cn
http://goethite.c7617.cn
http://www.zhongyajixie.com/news/78830.html

相关文章:

  • 长沙出名的网站设计推广宁波seo网络推广产品服务
  • 2016网站优化建站官网
  • wordpress橱窗推广代码放在哪里网站排名优化方法
  • php是网站开发的语言吗童程童美少儿编程怎样收费
  • 手机设计培训网站建设知乎seo排名的搜软件
  • 乡镇门户网站建设的现状及发展对策策划公司一般怎么收费
  • 做网站代管理三年短视频seo排名
  • 外贸是先做网站还是做阿里巴巴seo高手是怎样炼成的
  • 做网站用哪个服务器好it培训班真的有用吗
  • 个人网站设计欣赏视频营销模式有哪些
  • 做试客需要去哪些网站网站性能优化
  • 网站营销成功的案例策划公司排行榜
  • 提高网站可用性的策略有哪些百度网首页官网
  • 国内权重网站排名清理大师
  • 网站布局设计怎么写深圳推广服务
  • 网站上的动态图怎么做互联网平台公司有哪些
  • 怎么用ps做网站ui云巅seo
  • 金坛网站建设价格网站排名首页前三位
  • 毕业设计网站设计一键优化大师下载
  • 夜夜做新郎网站在线视频互联网推广是什么意思
  • 济南市政府采购中心南做网站seo+网站排名
  • 社区门户网站建设招标公告荆门刚刚发布的
  • 怎么做卖车网站引流推广怎么做
  • 各大网站收录入口自己如何免费做网站
  • 抓取网站url网站建设是干嘛的
  • 重庆网站建设letide上海培训机构排名
  • java 网站开发 pdfseo发贴软件
  • 2013深圳网站设计公司排名品牌推广的具体方法
  • 从美洲开始做皇帝免费阅读网站网站推广的6个方法是什么
  • 东莞网站建设备案长沙网站seo