首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JCabi方面@RetryOnFailure如何抛出异常

JCabi方面@RetryOnFailure如何抛出异常
EN

Stack Overflow用户
提问于 2013-09-19 13:37:28
回答 4查看 3.5K关注 0票数 7

我希望使用JCabi手动调用对方法的重试。面向方面的编程应该会使这件事变得简单,但我无法理解。

代码语言:javascript
复制
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中唯一可用的示例是下面的示例,它没有说明如何抛出异常以强制重试调用:

用@RetryOnFailure注释注释您的方法,如果方法出现异常,它的执行将重复几次: 公共类资源{@RetryOnFailure(尝试= 2,延迟= 10,详细=假)公共字符串加载(Url url) {返回url.openConnection().getContent();}} 在出现异常时,该方法将重试两次,每次尝试延迟10毫秒。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-09-23 20:35:20

事实上,仅仅使用jcabi注释是不够的。你应该“编织”你的源代码或二进制文件。我建议编写二进制文件,如这里所解释的:http://aspects.jcabi.com/example-weaving.html。将这个插件添加到您的pom.xml中,您就完成了:

代码语言:javascript
复制
<plugin>
    <groupId>com.jcabi</groupId>
    <artifactId>jcabi-maven-plugin</artifactId>
    <version>0.8</version>
    <executions>
      <execution>
        <goals>
          <goal>ajc</goal>
        </goals>
      </execution>
    </executions>
</plugin>
票数 2
EN

Stack Overflow用户

发布于 2015-03-05 12:02:29

对于那些仍在寻找答案的人来说,耶戈的答案现在已经过时了。他发布的jcabi插件版本0.8并不适用于我。

经过几个小时的挖掘,我找到了,它说我们应该使用最后一个版本,2014年7月是0.9.2

这就是我为什么在运行mvn时得到的答案:ajc,我从链接中得到错误,并且织入不起作用。

票数 7
EN

Stack Overflow用户

发布于 2013-09-19 14:42:31

好的,不幸的是,我发现这些jcabi方面需要一个定制的pom.xml任务来编译项目中所需的方面。

因此,仅在NetBeans中删除jcabi jar并编译上述代码是不够的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18896204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档