Скачать книгу

href="#image144_5d776381a3aa90756a8a82ce_jpg.jpeg"/>

      Это исключение вызывается, когда пытаются преобразовать строку в числовой тип, например, double или integer, но при этом строка не содержит числа.

      Стандартный способ управления этими инструкциями, которые могут выбросить исключение, это заключить их в оператор try-catch.

      Здесь вы видите, что код метода printDivision заключен в выражение try-catch.

      В этом случае нет необходимости проверять значение b, делителя.

      Если b отличен от нуля, будет выполнен метод System.out.printIn (a / b);

      В противном случае Java выбросит исключение ArithmeticException с сообщением, что вы не можете делить на ноль.

      Поток программы будет продолжен, как обычно, после обнаружения этого исключения.

      Выражение try-catch также может быть применено к примерам ArrayIndexOutOfBoundsException и NumberFormatException, которые мы видели ранее.

      В обоих случаях, и благодаря выражению try-catch, мы можем гарантировать, что, если возникает исключение, пользователь получит соответствующую информацию, и поток выполнения программы продолжится далее нормально.

      Вы также можете не обрабатывать исключения блоком try-catch в методе, а передать это право вызывающему этот метод.

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

      И уже в вызывающем коде обработать вызов этого метода блоком try-catch.

      Также вы можете сами, специально, не виртуальная машина, а вы – выбросить исключение с помощью ключевого слова throw, указав тип исключения.

      Например, чтобы предотвратить выполнение кода, когда параметр метода не является возможным входным значением.

      Таким образом, ключевое слово throw – служит для генерации исключений.

      Блок try может иметь несколько блоков catch, каждый из которых имеет дело с конкретным исключением.

      Если блок try генерирует исключение, то соответствующий блок catch обработает исключение, и программа будет продолжена.

      Встроенные исключения Java имеют определенную иерархию.

      Все классы, представляющие ошибки являются наследниками класса java.lang.Throwable.

      Только объекты этого класса или его наследников могут быть «выброшены» JVM при возникновении какой-нибудь исключительной ситуации, а также только эти исключения могут быть «выброшены» во время выполнения программы с помощью ключевого слова throw.

      Поэтому, если вы хотите создать свой класс исключения, он должен происходить от класса Throwable, или более точнее от класса Exception.

      Также нужно учитывать, что все исключения делятся на «проверяемые» (checked) и «непроверяемые» (unchecked).

      checked exception – проверяемое исключение, которое проверяется компилятором.

      Throwable и Exception и все их наследники, за исключением наследников Error-а и RuntimeException – проверяемые.

      Error и RuntimeException и все их наследники – не проверяемые компилятором исключения.

      Компилятор

Скачать книгу