日期:2014-05-20  浏览次数:20867 次

异常处理问题作业题??
当程序重新抛出一个新的异常时,原有异常所包含的数据也会随之丢失,例如:
  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());
    }
}