篮球中的exception

原创 2004年04月13日 13:56:00

  When used to best advantage, exceptions can improve a program's readability, reliability and maintainability. When used improperly, they can have the opposite effect.

  Playing basketball也一样,漂亮的假动作的确可以帅呆了我,但用得不合理则只能说是花哨而不实用了。

  Exception可分为三类,checked exceptions, runtime exceptions和errors。
  比如,盖帽时可能产生打手等exceptions,但这不会导致比赛就此不能进行。可以通过罚球来go on. 只是你的这次盖帽因犯规而无效,即不能得到你盖帽数增一的结果。这类exception称之为checked exception.

  而有时比赛过程中,可能同于球员比现实在是糟糕,而导致观众闹事(晕),比如向现场砸瓶子和水果,从而导致比赛意外中断。比赛能不能go on. 你也不能确定。这样便产生了一个runtime exception.

  还有一些情况,比如比赛时,电子记分牌突然产生一个exception.74分变成了47分,这时你也只好叹于无奈,因为这是一个error.

  由此看来,checked exceptions是可以恢复的,即可恢复条件下应该用checked exceptions,而后两种exceptions needn't并且通常shouldn't be caught. 其中runtime exceptions的出现意味着你的程序本身有问题,你可以通过改进球队的战术来解决。而errors是James Gosling的问题,不关你的事。

  Exceptions很有用,但很多情况的exceptions是unnecessary的。
  比如下面一个程序:
   while(没有防守){
     try{
       投篮();
     }catch(距离太远Exception e){
      System.out.println("距离远于10米,我可不想三不粘");
     }
     ...
   }
  这个程序可以正常运行,但如果Kobe在后场无人盯防时运球,却不得不停地抛出"距离太远exception",这还真够难为他的。改一下:
   while(没有防守){
     if(距离<5){
       投篮();
     }
     ...
   }
  这回Kobe只要睁着眼,一瞧篮框距离不远,便可起跳了。

  另外,一方法产生exception后,不应该改变调用该方法对象的状态。如下这个程序就犯了这个毛病:
   public void 盖帽(){
     盖帽次数++;
     if(打手)
       throw new 打手Exception();
   }
  这样一来,一场比赛得三双就容易了很多,呵呵。改成:
   public void 盖帽(){
     if(打手)
       throw new 打手Exception();
      盖帽次数++;
   }
  就行了。这个问题看似easy,却也是最容易犯错的地方。

  最后还有一个问题,也是一个最普遍和最严重的问题,那就是:exception没描述清楚.(地球人都知道啊^^)
  Ignoring an exception is analogous to ignoring a fire alarm--and turning it off so no one else gets a chance to see if there's a real fire.
  犯规时,一个裁判得如此描述:A队6号打手犯规,犯规次数累计共3次,并由B队罚球2次。否则,只闻一声哨响,双方球员争嚷,围住一球狂强,拳打脚踢真爽......

 

网页设计-篮球时刻

                                此网页设计完成于2009.3,为界面设计课程后的实践,个人独立完成,仅仅用于学习用途,内容不充实,所有素材,图片和视频均来自互联网,网页...
  • flydragonfly
  • flydragonfly
  • 2010年10月22日 12:24
  • 1794

NBA篮球运动员大数据分析决策支持系统

package com.dt.spark.sparksql import org.apache.hadoop.conf.Configuration import org.apache.ha...
  • a11a2233445566
  • a11a2233445566
  • 2017年02月09日 22:43
  • 588

街头篮球解封器丨辅助挂代码 - 分享不断,活动不断!

下载地址:http://share.weiyun.com/aa54f760d2330ab2e125110f177798df  (复制粘贴到浏览器) 思路:Hook+SendMess...
  • u013127038
  • u013127038
  • 2013年12月12日 13:57
  • 3127

篮球赛场数据统计系统数据库设计实例

篮球赛场数据统计系统数据库设计实例 研究内容(篮球赛场数据统计系统)    1)比赛前对球队、球员各项基本信息的录入功能;    2)比赛时对进球得分、各种进球类型以及裁判评判情况等数据和信...
  • RuanChengfeng
  • RuanChengfeng
  • 2016年08月08日 13:51
  • 1322

学Android---RadioGroup和RadioButton

1、什么是RadioButton和RadioGroup: 之前学到了CheckBox,知道了CheckBox是复选框,那么RadioButton应该就是CheckBox的死对头了—也就是单选按钮。但...
  • jxl1994
  • jxl1994
  • 2015年10月29日 11:17
  • 216

各国篮球官方网站

欧洲赛事: 欧洲篮球冠军联赛 http://www.euroleague.net 欧洲篮球联赛联盟 http://www.uleb.com 欧洲篮球协会杯 http://www.ulebcup....
  • ld513508088
  • ld513508088
  • 2012年06月12日 09:33
  • 47744

篮球,篮球,还是篮球

就说,为什么会投进?而为什么投不进?   说实话,我自己都说不准。   但是,说在篮球里面,什么都不懂,那也不是。有几个地方,它的道理还是比较简单的。...
  • mjh4317
  • mjh4317
  • 2015年01月12日 00:09
  • 129

篮球游戏AI预研

参考文献: 1、体育竞技游戏的团队AI http://blog.csdn.net/skywind/article/details/44922877 2、...
  • yinhaijing123
  • yinhaijing123
  • 2015年07月11日 09:34
  • 494

C++篮球错排问题 ——实质是求满足错排条件下的全排列

问题描述: 请编写程序求解篮球错排问题。已知n个篮子一字排开(n为用户输入的任意正整数),从左到右分别标着号:1,2,... ...,n;每个球也有编号,分别也是1,2,... ...,n。现要将这n...
  • Deutschester
  • Deutschester
  • 2010年07月03日 21:04
  • 1332

街头篮球被封号了怎么办,街头篮球解封器,游戏代码分享

解封器:http://share.weiyun.com/aa54f760d2330ab2e125110f177798df  (复制粘贴到浏览器) 官网:www.fsjoy123.com -----...
  • u013127038
  • u013127038
  • 2013年12月20日 13:23
  • 1698
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:篮球中的exception
举报原因:
原因补充:

(最多只允许输入30个字)