事件发生时停止功能

时间:2018-05-10 01:28:12

标签: java algorithm

为了简单起见,我们假设我有一行包含10行代码,每行需要1秒才能执行。现在,此函数中的代码应仅在一个条件下运行,并且如果在执行代码期间此条件未经验证(例如,在第5行和第6行之间),则该函数应立即停止。

如何在每行之前放置if(condition)return;语句来实现此行为?

这就是我想象的:

private void function(){
    eventsManager.register(new OnConditionChangedListener() {
        @Override
        public void onConditionUnverified() {
            //something like function.exit()
        }
    });

    line 1;
    line 2;
     ...
    line 5;
    //onConditionUnverified is triggered from somewhere
    //the next lines should not be executed
     ...
    line 10;
}

1 个答案:

答案 0 :(得分:0)

您可以抛出RuntimeException,然后执行function()将被中断。

您愿意尝试使用诸如eventsManager.check(...)来控制代码流,每个代码流路径更改都应由您的代码管理。抛出异常并使用try-catch块来控制代码流路径是一种好方法,如果你不介意一些性能损失:)