说如果我有下面的代码,它基本上是确定某个条件是否匹配,然后分配 boolean 值,然后运行一些代码。如果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();
}
最佳答案
如何消除 boolean 变量?您可以这样重写代码:
if (someCondition) {
if (!someMethod()) {
throw new Exception();
}
some codes...
}
else {
if (!anotherMethod()) {
throw new Exception();
}
some codes...
}
在我看来,这看起来更容易,但是这些东西只是一个品味问题...
额外的优势:如果异常最终出现在堆栈跟踪中,则您知道情况是什么,因为您有两个不同的throw语句。这可能会加快调试速度。
关于java - 用Java重写条件语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3340202/