Обработка исключений в Java
Что такое исключение в Java?
Исключение в Java Это событие, которое прерывает выполнение инструкций программы и нарушает нормальный ход выполнения программы. Это объект, который содержит информацию об ошибке, произошедшей внутри метода, и передается в систему времени выполнения. В Java, исключения в основном используются для обозначения различных типов ошибок.
Существует два типа ошибок:
- Ошибки времени компиляции
- Ошибки выполнения
Ошибки времени компиляции снова можно разделить на два типа:
- Ошибки синтаксиса
- Семантические ошибки
Пример синтаксических ошибок:
Вместо объявления int a; вы по ошибке заявили это как in a; для чего компилятор выдаст ошибку.
Пример: вы объявили переменную int a; и после нескольких строк кода вы снова объявляете целое число как int a;. Все эти ошибки подсвечиваются при компиляции кода.
Пример ошибок во время выполнения
Ошибка выполнения называется Исключения ошибка. Это любое событие, которое прерывает нормальный поток выполнения программы. Примерами исключений являются арифметическое исключение, исключение Nullpointer, исключение Divide by zero и т. д. Исключения в Java это то, что находится вне контроля разработчиков.
Нажмите здесь если видео недоступно
Зачем нам нужно исключение?
Предположим, вы написали программу для доступа к серверу. Пока вы разрабатывали код, все работало нормально.
Во время фактического производственного цикла сервер не работает. Когда ваша программа пытается получить к нему доступ, возникает исключение.
Как обрабатывать исключения
До сих пор мы видели, что исключение находится вне контроля разработчика. Но винить в сбое кода экологические проблемы — это не решение. Вам необходимо надежное программирование, которое позаботится об исключительных ситуациях. Такой код известен как Обработчик исключений.
В нашем примере хорошей обработкой исключений будет подключение к резервному серверу, когда сервер не работает.
Чтобы реализовать это, введите свой код для подключения к серверу (используя традиционные условия if и else). Вы проверите, не работает ли сервер. Если да, напишите код для подключения к резервному серверу. Такая организация кода с использованием цикла «if» и «else» неэффективна, когда ваш код имеет несколько Java-исключения обрабатывать.
class connect{
if(Server Up){
// code to connect to server
}
else{
// code to connect to BACKUP server
}
}
Попробуйте Catch Block
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 JavaИсключение
Шаг 3) Арифметическое исключение: деление на ноль показано ниже для строки № 5, а строка № 6 никогда не выполняется.
Шаг 4) Теперь давайте посмотрим, как 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 и 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Исключение.
Шаг 3) Создается исключение ArrayIndexOutOfBoundsException. Измените значение int d на 0. Сохраните, скомпилируйте и запустите код.
Шаг 4) Должно быть создано ArithmeticException.
Шаг 5) Раскомментируйте строку №10 до строки №12. Сохраните, скомпилируйте и запустите код.
Шаг 6) Ошибка компиляции? Это связано с тем, что Exception является базовым классом ArithmeticException Exception. Любое исключение, вызванное ArithmeticException, также может быть обработано классом Exception. Таким образом, блок catch ArithmeticException никогда не получит возможности выполниться, что делает его избыточным. Отсюда и ошибка компиляции.
Java Наконец заблокируйте
Последний блок выполняется независимо от возникновения исключения в блоке try. Это необязательный использовать с блоком 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) Ожидаемый результат. Наконец, блок выполняется, даже если возникло исключение.
Шаг 4) Измените значение переменной d = 1. Сохраните, скомпилируйте и запустите код и наблюдайте за выводом. Нижняя часть формы.
Резюме
- An Исключение — это ошибка времени выполнения. который прерывает нормальный поток выполнения программы. Нарушение во время выполнения программы называется ошибкой или исключением.
- Ошибки делятся на две категории
- Ошибки времени компиляции — синтаксические ошибки, семантические ошибки.
- Ошибки времени выполнения - Исключение
- A надежная программа должна обрабатывать все исключения и продолжить обычный поток выполнения программы. Java предоставляет встроенный исключительный метод обработки
- Обработчик исключений — это набор кода, который обрабатывает исключение. Исключения могут обрабатываться в Java используя try & catch.
- Попробуйте заблокировать: В этом блоке идет обычный код.
- Поймать блок: Если в обычном коде есть ошибка, то она попадет в этот блок.







