有时你需要重新抛出那个刚捕捉到的,用Exception捕捉到的异常。由于你已经有了当前异常的reference,因此你可以直接讲那个reference重抛出来。重抛会把异常送到更高一层的异常处理程序去。同一个try区块的其它catch子句都将被忽略。此外,它还会保留异常对象里的所有信息,这样捕获这个异常的上一层的异常处理程序就能够提取这个对象中的所有信息了。
如果你直接重抛当前的异常,则printStackTrace()方法所打印出来的那些保存在异常对象里的信息,还会指向异常发生的地方,它们不会被指到你重抛异常的地点。如果你要装载新的栈轨迹信息,你可以调用fillInStackTrace(),这个方法会将当前栈的信息塞进旧的异常对象中,并返回一个throwable对象。