Попробуйте Catch в Java:пример обработки исключений
Что такое исключение в Java?
Исключение в Java это событие, которое прерывает выполнение программных инструкций и нарушает нормальный ход выполнения программы. Это объект, который упаковывает информацию об ошибке, произошедшую в методе, и передает ее в систему времени выполнения. В Java исключения в основном используются для указания различных типов ошибок.
В этом уроке вы узнаете-
- Что такое исключение?
- Зачем нам Exception?
- Как обрабатывать исключения
- Попробуйте заблокировать
- Иерархия классов исключений Java
- Окончательная блокировка Java
Существует два типа ошибок:
- Ошибки времени компиляции
- Ошибки выполнения
Ошибки времени компиляции снова можно разделить на два типа:
- Синтаксические ошибки
- Семантические ошибки
Пример синтаксических ошибок:
Вместо объявления int a;
вы ошибочно объявили его как in a;
для которого компилятор выдаст ошибку.
Пример:вы объявили переменную int a;
и после нескольких строк кода вы снова объявляете целое число как int a;
. Все эти ошибки подсвечиваются при компиляции кода.
Пример ошибок во время выполнения
Ошибка выполнения называется Исключениями . ошибка. Это любое событие, которое прерывает нормальный ход выполнения программы.
Примеры исключений:арифметическое исключение, исключение нулевого указателя, исключение деления на ноль и т. д.
Исключения в Java — это то, что находится вне контроля разработчиков.
Нажмите здесь, если видео недоступно
Зачем нам Exception?
Предположим, вы написали программу для доступа к серверу. Пока вы разрабатывали код, все работало нормально.
Во время фактического производственного цикла сервер не работает. Когда ваша программа пытается получить к нему доступ, возникает исключение.
Как обрабатывать исключения
До сих пор мы видели, что исключение находится вне контроля разработчика. Но возлагать вину за сбой кода на экологические проблемы — это не решение. Вам нужно надежное программирование, которое позаботится об исключительных ситуациях. Такой код называется обработчиком исключений.
В нашем примере хорошей обработкой исключений будет подключение к резервному серверу, когда сервер не работает.
Чтобы реализовать это, введите свой код для подключения к серверу (используя традиционные условия if и else).
Вы проверите, если сервер не работает. Если да, напишите код для подключения к резервному серверу.
Такая организация кода с использованием циклов «если» и «иначе» неэффективна, если в вашем коде есть несколько исключений Java для обработки.
class connect{ if(Server Up){ // code to connect to server } else{ // code to connect to BACKUP server } }
Попробуйте заблокировать
Java обеспечивает встроенную исключительную обработку.
- Обычный код переходит в TRY блокировать.
- Код обработки исключений помещается в CATCH. блокировать
В нашем примере блок TRY будет содержать код для подключения к серверу. Блок CATCH будет содержать код для подключения к резервному серверу.
Если сервер запущен, код в блоке CATCH будет проигнорирован. В случае, если сервер не работает, возникает исключение, и код в блоке catch будет выполнен.
Итак, вот как исключение обрабатывается в Java.
Синтаксис для использования try &catch
try{ statement(s) } catch (exceptiontype name){ statement(s) }
Пример
Шаг 1) Скопируйте следующий код в редактор
class JavaException { public static void main(String args[]){ int d = 0; int n = 20; int fraction = n/d; System.out.println("End Of Main"); } }
Шаг 2) Сохраните файл и скомпилируйте код. Запустите программу с помощью команды java JavaException
Шаг 3) Арифметическое исключение — деление на ноль показано ниже для строки № 5, а строка № 6 никогда не выполняется
Шаг 4) Теперь давайте посмотрим, как try and catch поможет нам обработать это исключение. Мы поместим исключение, вызывающее строку кода, в try блок, за которым следует catch блокировать. Скопируйте следующий код в редактор.
class JavaException { public static void main(String args[]) { int d = 0; int n = 20; try { int fraction = n / d; System.out.println("This line will not be Executed"); } catch (ArithmeticException e) { System.out.println("In the catch Block due to Exception = " + e); } System.out.println("End Of Main"); } }
Шаг 5) Сохраните, скомпилируйте и запустите код. Вы получите следующий результат
Как видите, исключение обрабатывается, а также выполняется последняя строка кода. Также обратите внимание, что строка № 7 не будет выполнена, поскольку как только возникнет исключение, поток управления перейдет к блоку catch.
Примечание. Объект AritmeticException «e» содержит информацию о возникшем исключении, которая может быть полезна при выполнении действий по восстановлению.
Иерархия классов исключений Java
После выполнения одного оператора catch остальные игнорируются, и выполнение продолжается после блока try/catch. Вложенные блоки catch следуют иерархии исключений.
- Все классы исключений в Java расширяют класс Throwable. Throwable имеет два подкласса:Error и Exception
- Класс Error определяет исключение или проблемы, которые не ожидаются нашей программой при нормальных обстоятельствах, например ошибка памяти, аппаратная ошибка, ошибка JVM и т. д.
- Класс Exception представляет исключения, которые могут быть обработаны нашей программой, и наша программа может быть восстановлена из этого исключения с помощью блока try and catch.
- Исключение времени выполнения — это подкласс класса исключений. Исключение этого типа представляет собой исключение, которое возникает во время выполнения и которое нельзя отследить во время компиляции. Отличным примером того же является исключение деления на ноль, исключение нулевого указателя и т. д.
- Исключение ввода-вывода генерируется во время операций ввода и вывода.
- Прерванные исключения в Java генерируются во время многопоточности.
Пример: Чтобы понять вложенность блоков try и catch
Шаг 1) Скопируйте следующий код в редактор.
class JavaException { public static void main(String args[]) { try { int d = 1; int n = 20; int fraction = n / d; int g[] = { 1 }; g[20] = 100; } /*catch(Exception e){ System.out.println("In the catch block due to Exception = "+e); }*/ catch (ArithmeticException e) { System.out.println("In the catch block due to Exception = " + e); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("In the catch block due to Exception = " + e); } System.out.println("End Of Main"); } }
Шаг 2) Сохраните файл и скомпилируйте код. Запустите программу с помощью команды java JavaException. .
Шаг 3) Создается исключение ArrayIndexOutOfBoundsException. Измените значение int d на 0. Сохраните, скомпилируйте и запустите код.
Шаг 4 ) Должно быть сгенерировано исключение ArithmeticException.
Шаг 5) Раскомментируйте строку №10 до строки №12. Сохраните, скомпилируйте и запустите код.
Шаг 6) Ошибка компиляции? Это связано с тем, что Exception является базовым классом исключения ArithmeticException. Любое исключение, вызванное ArithmeticException, также может быть обработано классом Exception. Таким образом, блок catch ArithmeticException никогда не получит шанс быть выполненным, что делает его избыточным. Отсюда и ошибка компиляции.
Окончательная блокировка Java
Блок finallyвыполняется независимо от возникновения исключения в пробном блоке. Это необязательно для использования с блоком try.
try { statement(s) } catch (ExceptiontType name) { statement(s) } finally { statement(s) }
В случае возникновения исключения в блоке try, блок finally выполняется после выполнения блока catch.
Пример
Шаг 1) Скопируйте следующий код в редактор.
class JavaException { public static void main(String args[]){ try{ int d = 0; int n =20; int fraction = n/d; } catch(ArithmeticException e){ System.out.println("In the catch block due to Exception = "+e); } finally{ System.out.println("Inside the finally block"); } } }
Шаг 2) Сохраните, скомпилируйте и запустите код.
Шаг 3) Ожидаемый результат. Блок finally выполняется, несмотря на возбуждение исключения.
Шаг 4) Измените значение переменной d =1. Сохраните, скомпилируйте и запустите код и посмотрите на результат. Нижняя часть формы
Сводка :
- Исключение – это ошибка времени выполнения. который прерывает нормальный ход выполнения программы. Нарушение во время выполнения программы называется ошибкой или исключением.
- Ошибки делятся на две категории
- Ошибки времени компиляции — синтаксические ошибки, семантические ошибки
- Ошибки выполнения — исключение
- Надежная программа должна обрабатывать все исключения и продолжите свой обычный поток выполнения программы. Java предоставляет встроенный метод обработки исключительных ситуаций.
- Обработчик исключений – это набор кода, который обрабатывает исключение. . Исключения можно обрабатывать в Java с помощью try &catch.
- Попробуйте заблокировать :в этом блоке идет обычный код.
- Блок перехвата :если в обычном коде есть ошибка, то она попадет в этот блок
java
- Обработка исключений Python с использованием оператора try, exclude и finally
- Обработка исключений Java
- Java попробуй... поймай
- Java перехватывает несколько исключений
- Обработка исключений C++:пример Try, Catch, Throw
- Метод Java String charAt() с примером
- Метод Java String endWith() с примером
- Java BufferedReader:как читать файл в Java с примером
- Алгоритм сортировки вставками в Java с примером программы
- Обработка исключений Python:попробовать, поймать, наконец и поднять [Пример]