为了简单起见,我们假设我有一行包含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;
}
答案 0 :(得分:0)
您可以抛出RuntimeException,然后执行function()将被中断。
您愿意尝试使用诸如eventsManager.check(...)来控制代码流,每个代码流路径更改都应由您的代码管理。抛出异常并使用try-catch块来控制代码流路径是一种好方法,如果你不介意一些性能损失:)