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