Code Bye

Spring AOP中doThrowing()始终不执行

这是我的doThrowing()方法

public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
    	System.out.println("doAround---->");
        long time = System.currentTimeMillis(); 
        Object retVal = pjp.proceed();  
        time = System.currentTimeMillis() - time;  
        System.out.println("process time: " + time + " ms");  
        return retVal;  
    } 

applicationContext.xml中对应的配置如下:

<aop:config>  
        <aop:aspect id="aspect4Loger" ref="loggerAspect">  
            <!--配置com.spring.service包下所有类或接口的所有方法-->  
            <aop:pointcut id="businessService"  
                expression="execution(public * com.spring.service..*.*(..))" />  
            <aop:before pointcut-ref="businessService" method="doBefore"/>  
            <aop:after pointcut-ref="businessService" method="doAfter"/>  
            <aop:around pointcut-ref="businessService" method="doAround"/>  
            <aop:after-throwing pointcut-ref="businessService" method="doThrowing" throwing="ex"/>  
        </aop:aspect>  
    </aop:config>  

我其他的方法比如doBefore(),doAround()都可以执行,就这个始终无法执行,请问为什么?
另外,我的代码中确实抛出了异常的!

为什么没人来

40分
<aop:after-throwing>是有异常出现的时候才执行的  你没有产生异常  当然不执行了~~
我程序中产生异常了,代码如下:
if(1==1)
			throw new IllegalArgumentException("测试异常");  

难道这样有问题?

引用 2 楼 software_gemeng 的回复:

<aop:after-throwing>是有异常出现的时候才执行的  你没有产生异常  当然不执行了~~

求回答啊,我真的有抛出异常,看楼上~

上面写的居然是doAround()方法!doThrowing()方法是这样的:
 public void doThrowing(JoinPoint jp, Throwable ex) {  
    	System.out.println("doThrowing------>");
        System.out.println("method " + jp.getTarget().getClass().getName()  
                + "." + jp.getSignature().getName() + " throw exception");  
        System.out.println(ex.getMessage());  
        logger.error(ex.getMessage());
    }  

顺便提一句,doAround()是可以执行的!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Spring AOP中doThrowing()始终不执行