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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hadexs 中级黑马   /  2013-6-23 13:49  /  1196 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-27 07:15 编辑

自定义异常为什么必须要继承Exception类呢?

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
继承exception类的好处是新的异常可以从throwable的其他类中分别捕获。
exception类没有定义自己的任何的方法,但从thorwable类中继承了所有的方法,
创建的任何用户创建的异常类都将具有throwable 了的所有的方法。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
自定义异常通常是定义一个继承自Exception类的子类。一般情况下都会直接继承自Exception类,而不会继承某个运行时的异常类。

自定义异常 必须是自定义类继承Exception
继承Exception的原因:
  异常体系有一个特点:因为异常类和异常对象都被抛出。
  他们都具备可抛性。这个可抛性是Throwable这个体系中独有特点。
 只有这个体系中的类和对象才可以被throws和throw操作
  1. class FuShuException extends Exception //自定义异常
  2. {

  3.         FuShuException(String meg,int value)
  4.         {
  5.                 super(meg);

  6.         }
  7.        

  8. class Divide{
  9.        
  10.         public int divided(int a,int b) throws FuShuException
  11.         {

  12.                 if(b==0)
  13.                         throw new Exception("除零了!");
  14.                 return a/b;
  15.         }
  16. }


  17. public class DefineException {
  18.        
  19.         public static void main(String[]args)
  20.         {
  21.                 Divide div=new Divide();
  22.                 try
  23.                 {
  24.                         int x=div.divided(4, 0);
  25.                         System.out.println("result="+x);
  26.                 }
  27.                
  28.                 catch(FuShuException fu)
  29.                 {
  30.                         System.out.println(fu.toString());
  31.                        
  32.                 }
  33.                
  34.         }

  35. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 加油!

查看全部评分

回复 使用道具 举报 1 0
这是java异常的处理方式。只有集成了异常该类才能去调用java的异常处理,否则java不认识它是异常
回复 使用道具 举报
楼主您好。我已将您的帖子改成已解决。如果帖子发布长时间没加分。及时联系我。以免漏分的情况发生{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马