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) 不抛异常会出错
|
|