网站建设编码中的重抛异常
有时你需要重新抛出那个刚捕捉到的,用Exception捕捉到的异常。由于你已经有了当前异常的reference,因此你可以直接讲那个reference重抛出来。重抛会把异常送到更高一层的异常处理程序去。同一个try区块的其它catch子句都将被忽略。此外,它还会保留异常对象里的所有信息,这样捕获这个异常的上一层的异常处理程序就能够提取这个对象中的所有信息了。
如果你直接重抛当前的异常,则printStackTrace()方法所打印出来的那些保存在异常对象里的信息,还会指向异常发生的地方,它们不会被指到你重抛异常的地点。如果你要装载新的栈轨迹信息,你可以调用fillInStackTrace(),这个方法会将当前栈的信息塞进旧的异常对象中,并返回一个throwable对象。
在程序中异常要有注释,如果没有注释,那么无论这个异常被重抛多少次,异常的栈轨迹都会一直记得它是从最初那个抛出的。为了确保一切都能正常运行,编译器会强制要求在异常说明中使用throwable。你也可以抛出一个与你捕捉到的异常不同的异常。这么做的效果同使用fillInStackTrace()的差不多——异常最初在哪里发生的信息被扔,现在里面保存的是抛出新异常的地点。