zoukankan      html  css  js  c++  java
  • 异常链

    一 异常链简介
    常常会在捕获一个异常后,再抛出另外一个异常,并且希望把异常原始信息保存下来,这被称为异常链。
    在JDK1.4以前,程序员必须自己编写代码来保存原始异常信息。
    在JDK1.4以后,所有的Throwable的子类在构造器中都可以接收一个cause对象作为参数。这个cause就用来表示原始异常,这样可以把原始异常传递给新的异常,使得即使在当前位置创建并抛出新的异常,你也能通过这个异常链跟踪到异常最初发生的位置。

    二 异常链的应用
    1 代码示例

    public class SalException extends Exception
    {
    	public SalException(){}
    	public SalException(String msg)
    	{
    		super(msg);
    	}
    	// 创建一个可以接受Throwable参数的构造器
    	public SalException(Throwable t)
    	{
    		super(t);
    	}
    }
    public class TestSalException {
    
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		try
    		{
    			Calsal();
    		}
    		catch(SalException e)
    		{
    			e.printStackTrace();
    		}
    		
    
    	}
    	public static void Calsal() throws SalException
    	{
    		try
    		{
    			int a;
    			a=8/0;
    		}
    		catch(Exception e)
    		{
    			throw new SalException(e);
    		}
    	}
    
    }

     2 运行结果
    SalException: java.lang.ArithmeticException: / by zero
     at TestSalException.Calsal(TestSalException.java:29)
     at TestSalException.main(TestSalException.java:11)
    Caused by: java.lang.ArithmeticException: / by zero
     at TestSalException.Calsal(TestSalException.java:25)
     ... 1 more

  • 相关阅读:
    BZOJ1930 [Shoi2003]pacman 吃豆豆
    hdu5322 Hope
    hdu5390 tree
    hdu4609 3-idiots
    hdu5354 Bipartite Graph
    hdu4918 Query on the subtree
    hdu5314 Happy King
    [题解] PowerOJ 1741 最长递增子序列问题 (最大流)
    [题解] PowerOJ 1740 圆桌问题 (最大流)
    [题解] PowerOJ 1739 魔术球问题 (最大流)
  • 原文地址:https://www.cnblogs.com/ainima/p/6331674.html
Copyright © 2011-2022 走看看