黑马程序员技术交流社区

标题: 这是一个有关自定义异常的,看不懂!求大神帮忙! [打印本页]

作者: 黑马-幻灭    时间: 2014-4-17 11:32
标题: 这是一个有关自定义异常的,看不懂!求大神帮忙!
本帖最后由 黑马-幻灭 于 2014-4-17 21:11 编辑

class FuShuException extends Exception
{
        
        private int value;
        FuShuException(String msg,int value)
        {
                super(msg);
                this.value=value;
        }
        public int getvalue()
        {
                return value;
        }
}

class Demo
{
                int div(int a,int b)throws FuShuException
                {
                        if(b<0)
                           throw  new FuShuException("出现了除数为负数的情况!",b); //手动通过throw关键字抛出一个自定义异常对象
                        return a/b;
                }
}

class FuShu
{
        public static void main(String args[])
        {
                Demo d=new Demo();
                try
                {
                        int x=d.div(4,-1);
                System.out.println("x=="+x);
                }
                catch(FuShuException e)
                {
                                System.out.println(e.toString());
                                        System.out.println("错误的负数是:"+e.getvalue());
                        //        System.out.println("出现负数了!");
                }
                System.out.println("over");
        
        }
}


怎么理解???


作者: 清风有意    时间: 2014-4-17 12:02
不知道有没有帮助

  1. package exercise;

  2. class FuShuException extends Exception//自定义异常必须是在Throwable这个体系中,才可以try和throw
  3. {
  4.         
  5.         private int value;//定义这个变量是为了获取负数是多少。
  6.         FuShuException(String msg,int value)
  7.         {
  8.                 super(msg);//子类的空构造方法默认第一行是super()。
  9.                                         //这里定义了有参的构造方法,所以所以没有无参的构造方法。
  10.                                         //必须有一个构造方法访问父类,这是继承的特性。
  11.                 this.value=value;//将负数b传递给形参value,value再传递给本类的成员变量this.value,方便在别的方法中调用。
  12.         }
  13.         public int getvalue()//通过这个方法调用负数。
  14.         {
  15.                 return value;
  16.         }
  17. }

  18. class Demo
  19. {
  20.                 int div(int a,int b)throws FuShuException//当异常不是RunTimeException的子类时,
  21.                                                                         //内部没有try catch的话必须声明异常,就是throws抛出异常。
  22.                 {
  23.                         if(b<0)
  24.                            throw  new FuShuException("出现了除数为负数的情况!",b); //手动通过throw关键字抛出一个自定义异常对象
  25.                         return a/b;
  26.                 }
  27. }

  28. public class FuShu
  29. {
  30.         public static void main(String args[])
  31.         {
  32.                 Demo d=new Demo();
  33.                 try//try中存放的是有可能出现异常的代码
  34.                 {
  35.                         int x=d.div(4,-1);
  36.                 System.out.println("x=="+x);
  37.                 }
  38.                 catch(FuShuException e)//catch是处理出现的对应的异常。
  39.                 {
  40.                                 System.out.println(e.toString());
  41.                                         System.out.println("错误的负数是:"+e.getvalue());
  42.                         //        System.out.println("出现负数了!");
  43.                 }
  44.                 System.out.println("over");
  45.         
  46.         }
  47. }
复制代码

作者: 黑马-幻灭    时间: 2014-4-17 21:11
清风有意 发表于 2014-4-17 12:02
不知道有没有帮助

兄弟 谢了!




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