黑马程序员技术交流社区

标题: 新手写个异常不知哪出了问题,眼看花了,路过的帮忙看看 [打印本页]

作者: 余清兰    时间: 2012-6-20 21:31
标题: 新手写个异常不知哪出了问题,眼看花了,路过的帮忙看看
本帖最后由 余清兰 于 2012-6-20 22:08 编辑
  1. class FuShuException extends Exception
  2. {

  3. }

  4. class FuShuDemo
  5. {
  6. int div(int a,int b)throws FuShuException
  7. {
  8. if (b<0)
  9. {
  10. throw new FuShuException();//手动通过throw关键字抛出一个自定义异常对象。
  11. }
  12. return a/b;
  13. }
  14. }

  15. class FuShuExceptionDemo
  16. {
  17. public static void main(String[] args)
  18. {
  19. FuShuException FuShu = new FuShuException();
  20. try
  21. {
  22. int x = FuShu.div(5,1);
  23. System.out.println("x="+x);
  24. }
  25. catch (FuShuException e)
  26. {
  27. System.out.println(e.toString());
  28. System.out.println("除数是负数");
  29. }



  30. System.out.println("over");

  31. }
  32. }
复制代码

作者: 黑马—陈磊    时间: 2012-6-20 21:39
public static void main(String[] args)

        {

        FuShuException FuShu = new FuShuException();    // 你这边是不是应该创建这个实例:FuShuDemo FuShu = new FuShuDemo();
        try

        {

        int x = FuShu.div(5,1);

        System.out.println("x="+x);

        }

        catch (FuShuException e)

        {

        System.out.println(e.toString());

        System.out.println("除数是负数");

        }
作者: 耿鑫    时间: 2012-6-20 21:41
本帖最后由 耿鑫 于 2012-6-20 21:49 编辑

问题很多 首先主类在哪?main方法的类应该声明是public的 虽然默认是public,但是习惯都是不省去public,虽然不出错,但是别人看着不方便,还有25行代码,int x = FuShu.div(5,1); FuShu没有这个类啊  我想你是想写FuShuDemo吧,即便你写的是FuShuDemo也不能调用div方法,因为你是通过类名.方法 的形式调用的div,所以FuShuDemo中的div方法必须是static的 ,要么你就new一个FuShuDemo的对象再去调用div ,估计你 FuShuException FuShu = new FuShuException();  是想创建FuShuDemo对象的结果写错了, 还有变量的首字母要小写,要不别人看着以为是类呢。

没关系新手开始写代码都是这样,我以前和一样还不如你呢
完整代码应该如下:
package org.gengxin;

class FuShuException extends Exception
{

}

class FuShuDemo
{
         int div(int a, int b) throws FuShuException
        {
                if (b < 0)
                {
                        throw new FuShuException();// 手动通过throw关键字抛出一个自定义异常对象。
                }
                return a / b;
        }
}

public class FuShuExceptionDemo
{
        public static void main(String[] args)
        {
                FuShuDemo  fuShu = new FuShuDemo();
                try
                {
                        int x = fuShu.div(5, 1);
                        System.out.println("x=" + x);
                }
                catch (FuShuException e)
                {
                        System.out.println(e.toString());
                        System.out.println("除数是负数");
                }

                System.out.println("over");

        }
}
作者: 余清兰    时间: 2012-6-20 21:47
黑马—陈磊 发表于 2012-6-20 21:39
public static void main(String[] args)

        {

嗯是的哦,但还有问题,我再看看,谢谢
作者: 王晓新    时间: 2012-6-20 21:56
  1. class FuShuException extends Exception
  2. {

  3. }
  4. class FuShuDemo
  5. {
  6.         int div(int a,int b)throws FuShuException
  7.         {
  8.                 if(b<0)
  9.                 {
  10.                         throw new FuShuException();//手动通过throw关键字抛出一个自定义异常对象。
  11.                 }
  12.                 return a/b;
  13.         }
  14. }
  15. class FuShuExceptionDemo
  16. {
  17.         public static void main(String[] args)
  18.         {
  19.                 FuShuDemo FuShu = new FuShuDemo();// 你这里创建对象的时候应该是创建FuShuDemo类的对象,而不是FuShuException的对象。div方法也是在FuShuDemo类中啊
  20.                 try
  21.                 {
  22.                         int x = FuShu.div(5,-1);
  23.                         System.out.println("x="+x);
  24.                 }
  25.                 catch (FuShuException e)
  26.                 {
  27.                         System.out.println(e.toString());
  28.                         System.out.println("除数是负数");
  29.                 }
  30.                 System.out.println("over");
  31.         }
  32. }
复制代码

作者: 余清兰    时间: 2012-6-20 22:08
耿鑫 发表于 2012-6-20 21:41
问题很多 首先主类在哪?main方法的类应该声明是public的 虽然默认是public,但是习惯都是不省去public,虽 ...

谢谢,知道了
作者: 黑马-王言龙    时间: 2012-6-20 22:37
本帖最后由 wyl530274554 于 2012-6-20 22:40 编辑
  1. class FuShuException extends Exception {
  2. }

  3. class FuShuDemo {
  4. int div(int a,int b)throws FuShuException {
  5.   if (b<0) {
  6.    throw new FuShuException();
  7.   }

  8.   return a/b;
  9. }
  10. }

  11. class Demo {
  12. public static void main(String[] args) {
  13.   FuShuException FuShu = new FuShuException();
  14.   try {   
  15.    int x = FuShu.div(5,1);    //这里提示找不到div方法,是因为此方法是定义在FuShuDemo类里,而不是FuShuException类里
  16.    System.out.println("x="+x);
  17.   } catch (FuShuException e) {
  18.    System.out.println(e.toString());   
  19.    System.out.println("除数是负数");
  20.   }  
  21.   System.out.println("over");
  22. }
  23. }
复制代码





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