A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孙百鑫 于 2013-3-17 13:46 编辑

class FuShuException extends Exception//自定义对象
{

}

class Dmeo
{
        int div(int a,int b)throws FuShuException//在功能上通过throws的关键字声明了该功能有可能会出现问题。
        {
                if(b<0)
                        throw new FuShuException();//手动让throw关键字抛出对象。

                return a/b;
        }
}


class  ExceptionDemo3
{
        public static void main(String[] args)
        {
                Demo d=new Demo();
               
                int x=d.div(4,1);
                System.out.println("x="+x);

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

11 个回复

倒序浏览
class FuShuException extends Exception//自定义对象
{

}

class Dmeo
{
        int div(int a,int b)throws FuShuException//在功能上通过throws的关键字声明了该功能有可能会出现问题。
        {
                if(b<0)
                        throw new FuShuException();//手动让throw关键字抛出对象。

                return a/b;
        }
}


class  ExceptionDemo3
{
        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("除数为负数啦!");
                }

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

帮我看看哪里出错了。编译不通过呀啊呀呀
回复 使用道具 举报
你想说什么?
回复 使用道具 举报
孙百鑫 发表于 2013-3-17 13:06
class FuShuException extends Exception//自定义对象
{

编译通过哇
回复 使用道具 举报
谢洋 发表于 2013-3-17 13:10
你想说什么?

第一个明明有错误。但是编译通过了。。。第二个没看出来有错误。就是编译不通过!!!!!
回复 使用道具 举报
本帖最后由 何仕映 于 2013-3-17 13:14 编辑

你写的这个程序有两个问题导致编译失败:
1、Dmeo d=new Demo();在建立对象的时候把类名写错了,你定义的是Dmeo  却写成了Demo
2、对于int x = d.div(4,1)这一句是可能出现异常的,需要处理,有两种处理方式:
              1、在主函数上抛出2、利用try。。catch处理异常。我这里用的是第二种。
如果楼主编译通过了,要么是改变程序后没有保存编译,要么是运行了其他文件,请检查一下运行的文件名
详细见一下代码

  1. class FuShuException extends Exception//自定义对象
  2. {

  3. }

  4. class Dmeo
  5. {
  6.         int div(int a,int b)throws FuShuException//在功能上通过throws的关键字声明了该功能有可能会出现问题。
  7.         {
  8.                 if(b<0)
  9.                         throw new FuShuException();//手动让throw关键字抛出对象。

  10.                 return a/b;
  11.         }
  12. }


  13. class  ExceptionDemo3
  14. {
  15.         public static void main(String[] args)
  16.         {
  17.                 //Dmeo d=new Demo();在建立对象的时候把类名写错了,你定义的是Dmeo  却写成了Demo   
  18.                 Dmeo d = new Dmeo();

  19.                                 try                //对于int x = d.div(4,1)这一句是可能出现异常的,有两种处理方式:
  20.                                                 //1、在主函数上抛出2、利用try。。catch处理异常。我这里用的是第二种
  21.                                 {
  22.                                         int x=d.div(4,1);
  23.                                          System.out.println("x="+x);        
  24.                                 }
  25.                                 catch (FuShuException e)
  26.                                 {
  27.                                         System.out.println("出现负数了");
  28.                                 }
  29.                
  30.                 System.out.println("over");
  31.         }
  32. }
复制代码
回复 使用道具 举报
徐鸿燕 发表于 2013-3-17 13:10
编译通过哇

啊??????????我怎么第二个通过不了???
回复 使用道具 举报
谢洋 高级黑马 2013-3-17 13:14:04
8#
徐鸿燕 发表于 2013-3-17 13:10
编译通过哇


你这个包中该还有一个叫Demo的类,并且也有div这个方法吧,你看看有没有,应该没有鬼
回复 使用道具 举报
孙百鑫 发表于 2013-3-17 13:06
class FuShuException extends Exception//自定义对象
{

如果你创建了两个这样的类,那么看下 Demo类,是否重名。
回复 使用道具 举报
1\你这个包中该还有一个叫Demo的类,并且也有div这个方法吧,你看看有没有,应该没有鬼
2\是果是Dmoe类中的方法它抛了非runtimeException,根本通不过编译
回复 使用道具 举报
解决了解决了。。。尼玛~~~类名居然写错了了    - - 我无语了,。。谢谢大家啦
回复 使用道具 举报
何仕映 发表于 2013-3-17 13:11
你写的这个程序有两个问题导致编译失败:
1、Dmeo d=new Demo();在建立对象的时候把类名写错了,你定义的是 ...

大神。回答的超级详细。。。。。谢谢了。问题解决了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马