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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

青春灬漫步

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

© 青春灬漫步 中级黑马   /  2014-10-19 16:03  /  818 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果父类方法抛出多个异常,那么子类在覆盖时,怎么抛?

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 加油!

查看全部评分

1 个回复

倒序浏览
对多异常的处理
1,声明异常时,建议声明更为具体的异常,这样处理的可以更具体。
2,对方声明几个异常,就对应有几个catch块。不要定义多余的catch块
如过多个catch块中的异常出现继承关系,父类异常catch块放在最下面。

建立在进行catch处理时,catch中一定要定义具体处理方式。
不要简单定义一句 e.printStackTrace(),
也不要简单的就书写一条输出语句。
  1. class Demo
  2. {
  3.         int div (int a,int b) throws ArithmeticException,ArrayIndexOutOfBoundsException //在功能上通过throws 的关键字,声明类该功能有可能会出现问题。
  4.         {
  5.                 int[] arr = new int[a];
  6.                 System.out.println(arr[4]);
  7.                 return a/b;
  8.         }
  9. }

  10. class Test
  11. {
  12.         public static void main(String[] args)
  13.         {
  14.                 Demo d = new Demo();
  15.                 try
  16.                 {
  17.                         int x = d.div(4,1);
  18.                         System.out.println("x="+x);
  19.                 }
  20.                 catch(ArithmeticException e)
  21.                 {
  22.                         System.out.println(e.toString());        //异常名称:异常信息
  23.                         System.out.println("除零了");
  24.                 }
  25.                 catch(ArrayIndexOutOfBoundsException e)
  26.                 {
  27.                         System.out.println(e.toString());        //异常名称:异常信息
  28.                         System.out.println("脚标越界了");
  29.                 }
  30.                 System.out.println("over");
  31.         }
  32. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马