2015-07-13 4 views
0

Мне было интересно, если ниже код верен в соответствии со стандартами Java. Можно вернуть оператор после блока try? или всегда полезно разместить оператор return в блоке finally. Пожалуйста, помогите мне в этомУстанавливает оператор возврата, прежде чем, наконец, блокирует хорошую практику?

public int method() 
{ 
    try{ 
     //code 
     return 1; 
    } 
    catch(Exception e){ 
     return 0; 
    } 
    finally{ 
    } 
} 
+0

Размещать его, в конце концов, является хорошей практикой. Так как окончательно должен выполняться каждый раз, даже если возникло какое-либо исключение или нет. – Satya

ответ

2

return Ввод в try или даже в catch эс абсолютно нормально: делать все яснее. Будьте осторожны, чтобы не отбрасывать слишком много исключений, хотя, в частности, java.lang.Throwable, поскольку это может помешать работе JVM.

Обратите внимание, что если у вас есть returnв в finally блоке, то выражение в другом return является еще оценен, но результат отбрасываются и возвращаемое значение в finally блока возвращаются обратно к абоненту. Из-за этого помещать значение return в блок finally не рекомендуется.

+0

Это очень помогло. благодаря –

0

И наконец, в основном используется для очистки ресурсов в приложении. Если, наконец, блок присутствует в коде, он всегда выполняется, даже если исключение не выбрано. Вы можете разместить оператор возврата после блока try.It будет выполняться, если не будет выбрано исключение.

0

Bathsheba объяснил это хорошо. Добавляя к нему, даже если вы размещаете оператор return, элемент управления не возвращается и когда последний блок выполняется, вы управляете возвратом. И если вы пишете return в финальном блоке, как описано, это переопределит предыдущие операторы return.