JAVA中内层方法抛出异常 外层方法捕捉并处理异常

所谓的外层方法调用内容方法也就是下面这个意思:spa

    public void methodA (){ 
        try{ 
            // 调用methodB 
        methodB(); 
        } catch(ExceptionType et){ 
            // 相应处理措施 
        } 
    } 
    public void methodB throws ExceptionType{ 
        if (condition is true)  { 
            // 相应处理措施 
        }  else   { 
            throw new ExceptionType(argument); 
        } 
it

这个例子中, methodA ()就是外层方法, methodB(); 就是内层方法。io

方法B的头部中声明了该方法会抛出一个类型为ExceptionType的异常,在方法体中使用throw子句抛出了一个异常,那么该异常被谁捕捉到呢,答案是方法A。由于异常抛出后,JVM会顺着该方法的调用栈一层一层的往上找。由于方法A中有一个catch(ExceptionType et),因此被抛出的异常会被捕捉到并处理。
方法