2013-03-12 4 views
4

У меня есть следующий аспект:Почему проследовать() выдаст ошибку

aspect NullifyNoResultException { 

    Object around(..) : execution(public Object com.example.*.*(..) { 
     try { return proceed();  
      } catch (NoResultException e) { 
       return null; 
      }     
     } 
    } 
} 

По какой-то причине вызова, чтобы продолжить дает ошибку в Eclipse:

Метод проследовать() не определен для типа NullifyNoResultException

Когда я строю в maven ->mvn install У меня нет ошибок. Но это не имеет никакого смысла, потому что я все еще пропускаю импорт для NoResultException, поэтому maven должен жаловаться на это.
Вместо этого он просто строит и не жалуется.

Как заставить Eclipse перестать жаловаться на proceed()?
и как мне получить этот аспект для сборки?

ответ

2

Я нашел несколько синтаксических ошибок в вашем примере кода. Когда я их исправляю, следующий пример работает нормально. BTW, я определил свой собственный NoResultException, потому что у меня нет Java EE.

package javax.persistence; 

public class NoResultException extends RuntimeException { 
    private static final long serialVersionUID = 1L; 
} 
package com.example.stackoverflow; 

import javax.persistence.NoResultException; 

public class Application { 
    public static void main(String[] args) { 
     Application app = new Application(); 
     System.out.println(app.valueReturningMethod(1, "two")); 
     System.out.println(app.exceptionThrowingMethod(1, "two")); 
    } 

    public Object valueReturningMethod(int i, String string) { 
     return "normal result"; 
    } 

    public Object exceptionThrowingMethod(int i, String string) { 
     throw new NoResultException(); 
    } 
} 
package com.example.stackoverflow; 

import javax.persistence.NoResultException; 

aspect NullifyNoResultException { 
    Object around() : execution(public Object com.example..*(..)) { 
     try { 
      return proceed(); 
     } catch (NoResultException e) { 
      return null; 
     } 
    } 
} 

Выход, как и ожидалось:

normal result 
null 
+0

Wow спасибо, будет смотреть на него сейчас, и пусть вы знаете, как она идет. – Johan

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