我想使用JCabi手动要求方法重试。面向方面的编程应该使这变得容易,但是我无法弄清楚。

import com.jcabi.aspects.RetryOnFailure;

public class Example
{

    public int j;

    @RetryOnFailure(attempts = 4, delay = 100, verbose = true)
    public void retryFun() throws Exception
    {
        j++;
        if(j<3)
            throw new Exception();
        else
            return;
    }

    public static void main(String[] args) throws Exception
    {
        Example example = new Example();
        System.out.println(example.j);
        example.retryFun();
        System.out.println(example.j);
    }
}

jcabi可用的唯一示例是下面的示例,该示例未显示如何引发异常以强制重试调用:

最佳答案

实际上,仅使用jcabi注释是不够的。您应该“编织”您的源代码或二进制文件。我建议编织二进制文件,如此处所述:http://aspects.jcabi.com/example-weaving.html。将此插件添加到pom.xml中,您已完成:

<plugin>
    <groupId>com.jcabi</groupId>
    <artifactId>jcabi-maven-plugin</artifactId>
    <version>0.8</version>
    <executions>
      <execution>
        <goals>
          <goal>ajc</goal>
        </goals>
      </execution>
    </executions>
</plugin>

关于java - JCabi方面@RetryOnFailure如何引发异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18896204/

10-15 22:02