重构 if-else 控制流

Dar*_*hta 2 java refactoring if-statement

我在浏览代码时遇到了以下代码段:

if(a || b){
    if(a) {
        doSomething();
    }
    doSomethingElse();
} else {
    throw new Exception("blah");
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何重构这段代码以获得更好的可读性(或者它已经处于最佳状态?)。下面是我的第一次尝试:

if(!a && !b){
    throw new Exception("blah");
}
if(a){
    doSomething();
}
doSomethingElse();
Run Code Online (Sandbox Code Playgroud)

这看起来更好吗?

use*_*900 10

只有条件a || b执行doSomethingElse

if(a) {
    doSomething();
} 
if (a || b) {
    doSomethingElse();
} else {
    throw new Exception("blah");
}
Run Code Online (Sandbox Code Playgroud)

当否定条件因为!a && !b它会让人困惑时,我更喜欢肯定条件