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

异常处理小问题
Java code
import java.io.*;
public class Test 
{
    public static void main(String[] args)
    {
        try
        {
            throwChecked(3);
            throwRuntime(3);  //感觉这条没执行,,,
        }
        catch (RuntimeException re)
        {
            System.out.println(re.getMessage());
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
        
    }
    public static void throwChecked(int a) throws Exception
    {
        if (a > 0)
        {
            throw new Exception("ta > 0 ,exception");
        }
    }
    public static void throwRuntime(int a)
    {
        if (a > 0)
        {
            throw new RuntimeException("re > 0,Runtime exception");
        }
    }
}


一个try 块只能 一行代码的错误? 我单步调试了一下,发现下面那个 throwRuntime 压根就没进去。。。。直接跳出到程序最后了。。。。

------解决方案--------------------
throwChecked(3);抛出异常当然会被catch,不会再往下执行了,如果没有finally,catch执行完就跳出方法了,
如果想throwRuntime(3); 来抛出异常,throwChecked(3);就不能有异常。。。
------解决方案--------------------
上面的 哪个方法 先 抛出了 exception 被你捕获了 刚上面说错了
------解决方案--------------------
探讨

throwChecked(3);抛出异常当然会被catch,不会再往下执行了,如果没有finally,catch执行完就跳出方法了,
如果想throwRuntime(3); 来抛出异常,throwChecked(3);就不能有异常。。。

------解决方案--------------------
throwChecked(3); 抛出Exception异常。。。执行到
catch(Exception e)
{
System.out.println(e.getMessage());
}

程序遇到异常,,然后打印出e.getMessage()以后就会终止。。try中以下的部分将不会再执行下去。。。