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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 心之信子 中级黑马   /  2014-8-28 18:59  /  622 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class FuShuIndexException extends Exception
        {
                 FuShuIndexException(String msg)
                 {
                         super(msg);
                 }
         }
        class Demo
        {
                //函数上可以抛出throws NullPointerException, FuShuIndexException异常
                public int method(int[] arr,int index) throws Exception
                {
                        if(arr == null) throw new NullPointerException("没有任何数组实体");
                        if(index<0) throw new FuShuIndexException("负数角标!!! ");
                        return arr[index];
                }
        }
        class ExceptionDemo
        {
                 public static void main(String[] args)
                {
                        int[] arr = new int[]{1,2,3,5};
                        Demo d = new Demo();
                        try
                        {
                                int num = d.method(null,2);
                                System.out.println("num="+num);
                        }
                        catch(NullPointerException e)
                        {
                                System.out.println(e.toString());
                        }
                        catch(Exception e)
                        {
                                //getMessage语句用于获取异常信息。
                                System.out.println("message:"+e.getMessage());
                                //toString语句用于获取异常名称及信息。
                                System.out.println("string:"+e.toString());
                                //jvm默认的异常处理机制就是调用异常对象的这个方法。
                                e.printStackTrace();
                         }
                }
        }
请问一下,为什麽主函数catch(Exception e) 不用抛异常不会出错
而用catch( FuShuIndexException e) 不抛异常会出错

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马