用Java重写条件语句

假设我有下面的代码,它基本上确定一些条件匹配,然后分配布尔值,然后运行一些代码.如果booleanValue为false,则抛出异常.如果booleanValue为false而不运行其余代码,我希望它立即抛出异常怎么办?如果我只是将第二个条件语句放入第一个条件语句中,则会有重复的代码.请告诉我一个聪明的方法(我已修改代码看起来像我的实际代码).
boolean booleanValue = false;
Permission value;

if (someCondition) {
   value = getPermission_1();
   booleanValue = someMethod(value);
   useValue_1(value);
}
else {
   value = getPermission_2();
   booleanValue = anotherMethod(value);

   useValue_2(value);
}

if (!booleanValue) {
   throw Exception();
}

解决方法

如何消除布尔变量?您可以像这样重写代码
if (someCondition) {
   if (!someMethod()) {
     throw new Exception();
   }
   some codes...
}
else {
   if (!anotherMethod()) {
     throw new Exception();
   }
   some codes...
}

这对我来说看起来更容易,但这样的事情是品味的问题……

额外优势:如果异常以堆栈跟踪结束,您就知道条件是什么,因为您有两个不同的throw语句.这可能会加快调试速度.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...