4

我有以下方面:

aspect NullifyNoResultException {

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

由于某种原因,继续调用在 Eclipse 中出现错误:

未定义 NullifyNoResultException 类型的方法 continue()

当我在 Maven 中构建时 ->mvn install我没有收到任何错误。但这没有任何意义,因为我仍然缺少导入,NoResultException所以 maven 应该抱怨这一点。
相反,它只是构建而不抱怨。

如何让 Eclipse 停止抱怨proceed()
以及如何构建这个方面?

4

1 回答 1

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
于 2013-03-15T12:16:51.787 回答