黑马程序员技术交流社区

标题: 异常的问题 [打印本页]

作者: lucy198921    时间: 2013-3-31 11:47
标题: 异常的问题
本帖最后由 lucy198921 于 2013-4-2 18:45 编辑
  1. class  RuntimeExceptionDemo
  2. {
  3.         public int getArea(int width,int heigth)
  4.         {
  5.         if (width<=0||heigth<=0)
  6.                 {
  7.         throw new RuntimeException("数据非法,矩形不存在");
  8.         }
  9.         return width*heigth;
  10.         }
  11.                 public int getArea1(int width,int heigth)
  12.         {
  13.         if (width<=0||heigth<=0)
  14.                 {
  15.         throw new RuntimeException("数据非法,矩形不存在");
  16.         }
  17.         return width*heigth;
  18.         }

  19. }


  20. class ExceptionDemo2
  21.         {
  22.         public static void main(String[] args)
  23.                 {
  24.                 RuntimeExceptionDemo re=new RuntimeExceptionDemo();
  25.                 int area=0;
  26.                 int area1=0;
  27.                 area=re.getArea(2,-8);
  28.                 area1=re.getArea1(2,8);
  29.                 boolean b= compare(area,area1);
  30.                 System.out.println("b="+b);
  31.                 }
  32.         public static boolean compare(int area, int area1)
  33.                 {
  34.                 return area==area1;
  35.                 }
  36.         }
复制代码

作者: HM何伟    时间: 2013-3-31 12:03
你抛的是RuntimeException,这个异常,是在运行时期抛出的,不需要在函数上声明,也不需要处理
运行时期异常,一旦出现,程序停止运行,修改源代码.RuntimeException的子类也具有这样的特性.
所以这个程序的矩形的长和宽都不小于0,否则程序必将停上.
可以自定义一个,当出现小于0时的异常.
作者: 陈丽莉    时间: 2013-3-31 18:49
若还有问题,请继续追问~  没有的话,请将帖子分类改成【已解决】~
作者: 夏凡    时间: 2013-4-2 08:27
首先,你的ExceptionDemo这个类代码是没有问题的
           在ExceptionDemo2 中需要声明一下异常吧

其次,你的只有发现异常机制也就是ExceptionDemo中的那些throw语句
             但是在ExceptionDemo2里面并没有处理语句,处理方式有两种
            要么用throws抛出让虚拟机用默认的方式解决,要么自定义解决用try{}catch{
Exception e}

用try{}catch{Exception e}要把可能存在异常的语句放在try里面





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