今天遇到一个问题,不知道如何解决,希望高手给出个招。
try
{
    抛出一个异常;
    语句A;
    语句B;
    语句C;
}
catch
{
    对异常进行处理;
}
问题是,抛出一个异常后,我理解应该马上进入catch语句块,对异常进行处理。
可实际的运行情况是,抛出一个语句后,继续往下执行了语句A和语句B,才进入了catch语句块。不知道各位大侠有没有遇到过这类的问题,是因为什么原因导致的,怎么处理。谢谢!

解决方案 »

  1.   

    你既然把异常抛出去了就说明需要该方法的上一级方法进行捕获解决,如果要在本方法里解决就不用往外抛了,直接catch捕获就行了。
      

  2.   

    当抛出异常后,语句A是不会再执行的。因为如果要还是忘下执行的话,那java语言就有很大问题,前面都出错了,还执行后面的逻辑,那不是不可预期的错误会越执行越多,因为后边的逻辑很可能是依赖前面的代码的。LZ可以测试下面的代码:package com.csdn.exception;public class TestException { /**
     * @param args
     */
    public static void main(String[] args) {
    try {
    System.out.println(11); // 产生空指针异常
    String s = null;
    System.out.println(s.toString()); System.out.println(22); } catch (Exception e) {
    System.out.println(33);
    } finally {
    System.out.println(44);
    } System.out.println(55);
    }
    }
    输出结果为:
    11
    33
    44
    55

      

  3.   

    如果抛出异常,应该直接跳转到Catch里面去。不会再执行出异常错误下面的语句了。