黑马程序员技术交流社区

标题: 异常处理的出了点小问题 [打印本页]

作者: Candy    时间: 2013-7-22 16:33
标题: 异常处理的出了点小问题
本帖最后由 杨兴庭 于 2013-7-23 17:43 编辑

在进行数据处理的时候,可以提前对输入数据进行控制,避免不合理的数据传入;异常处理也能对传入的不合理数据进行控制。       [br/] [br/]那么为了避免不合理的数据进行运算,什么时候用控制数据的方法?什么时候用异常处理?
  1. //什么时候用控制数据的方法,什么时候用异常处理?

  2. class Demo
  3. {
  4.         int div(int a,int b)
  5.         {
  6.                 return a/b;
  7.         }
  8. }

  9. class  ExceptionDemo
  10. {
  11.         public static void main(String[] args)
  12.         {
  13.                 Demo d = new Demo();
  14.                  try
  15.                  {
  16.                         int x= d.div(4,0);
  17.                         System.out.println("x="+x);
  18.                  }
  19.                  catch (Exception e)
  20.                  {
  21.                          System.out.println("不能除以零");
  22.                  }
  23.                
  24.            
  25.                 System.out.println("Hello World!");
  26.         }
  27. }
复制代码

作者: 薛鹏鹏    时间: 2013-7-22 16:47
这这。。。。。。怎么看着这么熟悉{:soso_e114:}
作者: 杨兴庭    时间: 2013-7-22 18:18
薛鹏鹏 发表于 2013-7-22 16:47
这这。。。。。。怎么看着这么熟悉

难道是你失散了多年青梅竹马的小伙伴;P
作者: 左手神刀    时间: 2013-7-22 18:32
1 调用了能抛出异常的类或方法,这时就可用异常来预处理数据,比如键盘输入不是数字字符而是字母字符,这时如果调用了Integer类 将输入的字符数据转成Integer型数据时就会抛出异常,这时候就可以利用这个异常告诉用户输入的不是纯数字字符串,请用户重新输入。
2 如果用户输入的确实是纯数字字符串,还抛出异常 就说明他输入的数字值太大 超出了Integer的范围,这时就可以用数据控制的方法比如正则表达式,将判断输入的字符串是不是纯数字类型做提前预处理,把数字值太大超出Integer范围这个异常放到 异常里来处理 。用这两种方法相结合,就可以判断 出用户到底是数字太大错还是输入的不纯数字的错误了。
表达的可能不太清楚 试着理解一下吧,看不懂就让他漂过。。。
作者: 薛鹏鹏    时间: 2013-7-22 21:30
杨兴庭 发表于 2013-7-22 18:18
难道是你失散了多年青梅竹马的小伙伴

明显就是复制我的帖子
作者: 杨兴庭    时间: 2013-7-22 21:35
薛鹏鹏 发表于 2013-7-22 21:30
明显就是复制我的帖子

恩。。好像我昨天还回复了你的问题。。呵呵。。谢谢你的提醒,我会撤销他的本帖技术分奖励的,也有可能是他看了你的帖子不懂也提问一次,这种情况也是允许的
作者: 薛鹏鹏    时间: 2013-7-22 21:53
杨兴庭 发表于 2013-7-22 21:35
恩。。好像我昨天还回复了你的问题。。呵呵。。谢谢你的提醒,我会撤销他的本帖技术分奖励的,也有可能是 ...

还有意外惊喜,谢谢了。   




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2