Использование ЛпаНу

Когда генерируется исключение, исполнение в методе занимает довольно резкое, нелинейные пути, который изменяет нормальный поток через метод. В зависимости от того, как кодируется метод, метод может вернуть досрочно. Например, если метод открывает соединение с базой данных о въезде и закрывает его при выходе из него, тогда вы не хотите, чтобы код, который закрывает файл, который будет обойти, за исключением механизма обработки ключевых слов, наконец, предназначен для решения таких непредвиденных обстоятельств.

"Наконец" создает блок кода, который будет выполнен после Try / Catch блока завершена и перед кодом после Try / Catch блока. И наконец блок будет выполнять или не генерируется исключение.

Если бросить исключение, наконец, блок будет выполнить, даже если не поймут заявления соответствующего исключения. Наконец гарантированно выполнить, даже если они брошены без исключения. Наконец блока является идеальной позиции для закрытия таких ресурсов, как дескриптор файла или базы данных, соединения и т.п.


public class FinallyDemo {



  static void procA(){



    try{

      System.out.println("inside procA");

      throw new RuntimeException("demo");

      

    }finally{

      System.out.println("procA's finally");

    }

  }



  //Return from with in a try block.

  static void procB(){



    try{

      System.out.println("inside procB");

      return;

    }

    finally{

      System.out.println("procB's finally");

    }

  }



  //Execute a try block normally.

  static void procC(){



    try{

      System.out.println("inside procC");

    }

    finally{

      System.out.println("procC's finally");

    }  

  }



  public static void main(String[] args) {



    try{

      procA();

    }catch(Exception e){

      System.out.println("Exception caught");

      

    }



    procB();

    procC();



  }



}

Вывод на экран:

inside procA
procA's finally
Exception caught
inside procB
procB's finally
inside procC
procC's final

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>