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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 杨闯 于 2013-4-14 09:49 编辑

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

public class Exception123 {
       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("被除数出现负数了!");
  }
  
  System.out.println("over!");
}
}

如上所示,自定义了异常FuShuException继承了Exception,
然后就出现了下面的错误

第一行将自定义异常FuShuException继承于Throwable后问题解决


求教各位同学,跟着毕老师手把手打的代码,为什么就出现不同的结果呢,不是因为人品吧?

评分

参与人数 1技术分 +2 收起 理由
张熙韬 + 2 鼓励下!

查看全部评分

10 个回复

倒序浏览
奇怪复制了你的代码,我的能运行啊。
回复 使用道具 举报
是可以继承Exception的,通常就是继承Exception或者RuntimeException,运行了你的代码,表示可以通过,最后给你点小建议,建议你大括号的格式规范一下,因为有时候就可能导致错误,而且不好阅读啊。
回复 使用道具 举报
class FuShuException extends Exception{ //处理异常的方法呢?
}
class Demo{
      int div(int a,int b) throws FuShuException{//
      if(b<0)
          throw new FuShuException();//手动通过throw关键字抛出一个自定义异常对象。
      return a/b;//如果b<0;你还return a/b;
       }
}

public class Exception123 {
        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("被除数出现负数了!");
   }
   
   System.out.println("over!");
}
}

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1

查看全部评分

回复 使用道具 举报
你抛出异常后,怎么能有返回呢?
这里改成如下:
  1.                 if (b < 0) {
  2.                         throw new FuShuException();// 手动通过throw关键字抛出一个自定义异常对象。
  3.                 } else {
  4.                         return a / b;
  5.                 }
复制代码
回复 使用道具 举报
李易烜 发表于 2013-4-13 12:21
你抛出异常后,怎么能有返回呢?
这里改成如下:

恩,感谢解答,程序抛出异常后是不会执行下面那句return语句的,只有b>0时候才会执行到
回复 使用道具 举报
杨闯 中级黑马 2013-4-13 15:50:26
7#
Asan 发表于 2013-4-13 12:17
class FuShuException extends Exception{ //处理异常的方法呢?
}
class Demo{

恩,感谢解答,程序抛出异常后是不会执行下面那句return语句的,只有b>0时候才会执行到
回复 使用道具 举报
杨闯 中级黑马 2013-4-13 15:51:23
8#
ld5128702 发表于 2013-4-13 11:45
是可以继承Exception的,通常就是继承Exception或者RuntimeException,运行了你的代码,表示可以通过,最后 ...

恩。同学,谢谢你的建议,会慢慢更正滴。至于我问的,看来真是人品问题了
回复 使用道具 举报
杨闯 中级黑马 2013-4-13 15:52:03
9#
梁航斌 发表于 2013-4-13 11:38
奇怪复制了你的代码,我的能运行啊。

额。确实好奇怪啊,楼下的同学也说能运行,纳了闷了,最近没做啥坏事啊。。。
回复 使用道具 举报
Asan 发表于 2013-4-13 12:17
class FuShuException extends Exception{ //处理异常的方法呢?
}
class Demo{

f(b<0)
          throw new FuShuException();//手动通过throw关键字抛出一个自定义异常对象。
      return a/b;//如果b<0;你还return a/b

如果b<0 就抛出异常了。下面的就不执行了。
回复 使用道具 举报
Sword 金牌黑马 2013-4-14 01:00:25
11#
编译运行了一遍,表示没有问题。
感觉应该是你的代码中的括弧或者逗号的问题,你可能在汉字输入法下输入的括弧或者逗号,可以仔细检查一下{:soso_e112:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马