Это хорошая практика иметь оператор return в блоке try, когда дело касается возвращаемого значения из блока finally

Мне было интересно, это хорошая практикаreturn отtry блок?

package debug;

/**
 *
 * @author Owner
 */
public class Main {

  public static void main(String[] args) {
    System.out.println(fun());
  }

  static boolean cleanup() {
    // Fail to cleanup.
    return false;
  }

  static boolean fun() {
    boolean everything_is_fine = true;
    try {
      System.out.println("open file stream");
      return everything_is_fine;
    } finally {
      everything_is_fine = cleanup();
    }
  }
}

Я сначала подумалаfalse будет напечатан. Тем не менее, вот вывод:

open file stream
true

Как вы можете видеть, если у меняreturn заявление вtry блок, я буду пропускать статус ошибки во времяfinally очистки.

Должен ли я иметь код как:

  static boolean fun() {
    boolean everything_is_fine = true;
    try {
      System.out.println("open file stream");      
    } finally {
      everything_is_fine = cleanup();
    }
    return everything_is_fine;
  }

Что касается возвращаемого значения из блока finally, следует ли мне избегать возврата из try?

Ответы на вопрос(4)

Ваш ответ на вопрос