当程序重新抛出一个新的异常时,原有异常所包含的数据也会随之丢失,例如:
try{
……
}catch(OldException e){
Throw new NewException(“new exception”);
}
此时,OldException所包含的数据会遗失,为了避免这种情况,我们可将原有的异常传入新的异常中,这称为chained exception(继承Exception),如:
Throw new NewException(“new exception”,e);
请生成ChainedException来达到这个目的。
请回答得完整一些,也就是当做作业题来解答,给个完整的答案,谢谢!
------解决方案--------------------
- Java code
package com.train.first;import java.io.IOException;public class Test{ public static void main(String[] args) throws Exception { try { try { if (true) { throw new IOException("NEW EXCEPTION"); } } catch (IOException e) { throw new ChainedException(e); } } catch (ChainedException e) { e.printStackTrace(); } }}class ChainedException extends Exception{ private static final long serialVersionUID = 1L; public ChainedException(Exception e) { super(e.getMessage(), e.getCause()); }}