Riordon

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

Java异常类层次结构图:

 

示例:

异常类

package PackName;

public class CTestException 
{  
    public CTestException() 
    {  
    }  
  
    public boolean testEx() throws Exception 
    {  
        boolean ret = true;  
        try
        {  
            ret = testEx1();  
        } 
        catch (Exception e)
        {  
            System.out.println("testEx, catch exception");  
            ret = false;  
            throw e;  
        } 
        finally 
        {  
            System.out.println("testEx, finally; return value=" + ret);  
            return ret;  
        }  
    }  
  
    public boolean testEx1() throws Exception
    {  
        boolean ret = true;  
        try
        {  
            ret = testEx2();  
            if (!ret) 
            {  
                return false;  
            }  
            System.out.println("testEx1, at the end of try");  
            return ret;  
        }
        catch (Exception e)
        {  
            System.out.println("testEx1, catch exception");  
            ret = false;  
            throw e;  
        } 
        finally 
        {  
            System.out.println("testEx1, finally; return value=" + ret);  
            return ret;  
        }  
    }  
  
    public boolean testEx2() throws Exception 
    {  
        boolean ret = true;  
        try {  
            int b = 12;  
            int c;  
            for (int i = 2; i >= -2; i--)
            {  
                c = b / i;  
                System.out.println("i=" + i);  
            }  
            return true;  
        } 
        catch (Exception e)
        {  
            System.out.println("testEx2, catch exception");  
            ret = false;  
            throw e;  
        } 
        finally
        {  
            System.out.println("testEx2, finally; return value=" + ret);  
            return ret;  
        }  
    }  
 }  

  

入口函数

import PackName.CTestException;

public class CVar 
{
	public static void main(String args[])
	{
		CTestException testException = new CTestException();  
        try
        {  
           testException.testEx(); 
        }
        catch (Exception e)
        {  
            e.printStackTrace();  
        }  
	}
}

运行结果

i=2
i=1
testEx2, catch exception
testEx2, finally; return value=false
testEx1, finally; return value=false
testEx, finally; return value=false

posted on 2014-07-24 14:50  Riordon  阅读(161)  评论(0编辑  收藏  举报