我有以下方面:
aspect NullifyNoResultException {
Object around(..) : execution(public Object com.example.*.*(..) {
try { return proceed();
} catch (NoResultException e) {
return null;
}
}
}
}
由于某种原因,调用proceed会在Eclipse中出错:
对于NullifyNoResultException类型
,方法proceed()未定义
当我在maven中构建时 - > mvn install
我没有错误。
但这没有任何意义,因为我仍然错过NoResultException
的导入,所以maven应该抱怨这一点。
相反,它只是建立而不是抱怨。
如何让Eclipse停止抱怨proceed()
?
以及如何构建这个方面?
答案 0 :(得分:2)
我在代码示例中发现了一些语法错误。当我纠正它们时,以下示例运行正常。顺便说一句,我定义了自己的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