黑马程序员技术交流社区

标题: 请教一个关于异常的问题 [打印本页]

作者: 心之信子    时间: 2014-8-28 18:59
标题: 请教一个关于异常的问题
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) 不抛异常会出错





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2