【发布时间】:2013-07-02 06:03:42
【问题描述】:
我正在尝试使用 Spring AOP 获取发生异常的确切行。
AspectLogger.java 中的代码:
@AfterThrowing(pointcut = "execution(* com.ing.trialbal.*.*.*(..))", throwing = "ex")
public void afterThrowingAdvice(JoinPoint jp, TrialBalException ex) {
logger.info("Exception : After throwing " + jp.getSignature().getName()
+ "()");
logger.info("********* " + ex.getMessage()
+ " Exception occured during " + jp.toShortString());
System.out.println("********* " + ex.getMessage()
+ " Exception occured during " + jp.toShortString());
}
DAO 类中的代码,我从中向 Service 抛出异常:
try {
...
} catch (Exception e) {
System.out.println("(((((((((((((" + e.getStackTrace().toString());
throw new TrialBalException("Error.TrialBalance.Exception : " + e);
} finally {
try {
pStmt.close();
} catch (Exception e) {
e.printStackTrace();
}
}
在日志中我得到了:
异常:在抛出 getLongTBDetail()
Error.TrialBalance.Exception : java.lang.NullPointerException 执行期间发生异常(LongTBDAoImpl.getLongTBDetail(..))
我不知道如何获取发生错误的确切行号。请帮忙。
【问题讨论】:
标签: java spring exception exception-handling spring-aop