Это неряшливый код. Фактическим эффектом является просто return OrExpression();
.
Есть одно оправдание, которое я принимаю для кода следующим образом: Есть много других подобных ему методов, которые следуют аналогичной схеме, но более сложны, так что бесполезные биты здесь не бесполезны. Однако это немного экстремальный пример.
Однако, почти нет оправданий для throw new Error("Missing return statement in function");
. Компилятор Java будет отказаться от компиляции метода возврата, который не является void
и который имеет путь к коду, который достигает конца (не return
, throw
, или введите бесконечный цикл). Единственная причина, по которой это было бы хорошей идеей, заключалось в том, что если целью было , то разрешить неполный код для компиляции - т.е. не работать во время выполнения, а не компилировать время, чтобы другие части кода могли быть использованы или протестированы - но даже после его применения для всех методов это плохая идея.
Довольно обходным способом для возврата OrExpression(); ' – assylias
' 'throw new Error()' недостижим? –
@assylias: именно это я тоже думаю. Мне просто интересно, почему, черт возьми, программист пишет свой код таким образом? – uthomas