2013-07-04 3 views
0

Я пытаюсь получить точную строку, где исключение произошло с использованием Spring AOP.
Код в AspectLogger.java:Что касается журнала регистрации событий AOP Spring

@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 класса, откуда я бросаю исключение службы:

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 (..))

Я не знаю, как получить точный номер строки, где случилась ошибка. Пожалуйста помоги.

ответ

0

Исключить исходное исключение как причину TrialBalException, которая затем будет содержать исходный стек (с номерами строк). Затем распечатайте исключение в своем аспекте.

+0

Не могли бы вы быть немного более сложными? –

+0

См. Отредактированный ответ – Jukka

Смежные вопросы