java - 事件发生时停止功能
问题描述
为了简单起见,假设我有一个包含 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;
}
解决方案
您可以抛出 RuntimeException 然后 function() 的执行将被中断。
您愿意尝试使用诸如 eventsManager.check(...) 来控制您的代码流,每个代码流路径更改都应该由您的代码管理。如果您不介意性能损失,则抛出异常并使用 try-catch 块来控制代码流路径是一个好方法 :)
推荐阅读
- arrays - 如何在 Swift 中获取指向数组的指针(而不是副本)?
- ssl - UI 路径:根据验证程序,远程证书无效
- php - 通过 ajax 保存时 CodeIgniter 不维护会话
- salesforce-lightning - 闪电组件中的 CkEditor
- c# - WebAPI 中的自定义返回结果
- node.js - 如何使用存储过程是sequalize orm
- mysql - 如何使用 UNION ALL 语句修复此 SQL?
- django - 如何在模板中显示消息负载数据
- android - 在 androidx 中更改快餐栏字体
- php - esc_html__() 有什么作用,它的用途是什么?