Ява

Обработка исключений Java

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

Синтаксис:

Синтаксис попытка поймать наконец блок приведен ниже.

пытаться
выписка 1… N

catch (ExceptiontType var)
выписка 1… N

наконец-то
выписка 1… N

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

Пример-1: Обработка исключений с помощью одного блока catch

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

импорт Java.io.BufferedReader;
импорт Java.io.FileReader;
импорт Java.io.IOException;
импорт Java.утилита.Сканер;
public class except1
public static void main (String [] args)
// Создаем объект сканера
Сканер в = новый Сканер (Система.в);
Система.вне.print ("Введите имя файла:");
// Берем строковые данные от пользователя
Строка FileName = in.следующий();
пытаться
// Создаем читательский объект
Читатель BufferedReader = новый BufferedReader (новый FileReader (FileName));
// Читаем первую строку, если файл существует
Строка строка = читатель.readLine ();
в то время как (строка != null)
// Распечатываем строку
Система.вне.println (строка);
// Читаем следующую строку
строка = читатель.readLine ();

// Закрываем читательский объект
читатель.Закрыть();
// Закрываем объект сканера
в.Закрыть();
catch (IOException e)
// Распечатать сообщение об ошибке
Система.вне.println («Файл не существует»);


Выход:

В следующем выводе,  'Привет.текст' дается как имя файла, которого не существует. Итак, напечатано следующее сообщение.

В следующий раз, file1.текст дается как имя файла, которое существует, и вывод показывает содержимое файла.

Пример-2: Обработка исключений с несколькими блоками перехвата

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

импорт Java.утилита.Сканер;
public class except2
public static void main (String [] args)

пытаться

// Объявить числовой массив
int num_arr [] = новый int [4];
// Создаем объект сканера
Сканер в = новый Сканер (Система.в);
Система.вне.println ("Введите четыре числа:");
// Повторяем цикл четыре раза
для (int i = 0; i < 4; i++)
// Ввод числа
int n = в.nextInt ();
// Присваиваем значение массиву
num_arr [i] = n;

Система.вне.println ("Значения массива:");
// Повторяем цикл пять раз
для (int i = 0; i < 4; i++)
// Распечатываем значения массива
Система.вне.println (число_арр [я]);

// Разделить и распечатать значение
int num = 50/0;
Система.вне.печать (число);
// Закрываем объект сканера
в.Закрыть();

catch (ArithmeticException e)

Система.вне.println ("Ни одно число не делится на 0");

catch (ArrayIndexOutOfBoundsException e)

Система.вне.println ("Значение индекса вне массива");

улов (Исключение е)

Система.вне.println («Числовое значение не указано»);


Выход:

Следующий вывод показывает, что значения массива вставлены и распечатаны правильно, но выполняется третий блок catch, потому что 50 делится на 0, что является ошибкой.

Программа выполняется второй раз. Когда строковое значение задается как значение массива, генерируется второе исключение и выполняется оператор второго блока catch.

Пример-3: Обработка исключений с блоком try-catch-finally

Использование блока finally с блоком try-catch показано в следующем примере. Код блока finally выполняется, если возникает исключение или нет. В коде у пользователя будет взято целочисленное значение. Если пользователь дает какое-либо строковое значение, то InputMismatchException

сгенерирует и распечатает сообщение из блока catch. Объект сканера будет закрыт в наконец-то блокировать, генерирует ли исключение или нет.

импорт Java.утилита.Сканер;
импорт Java.утилита.InputMismatchException;
public class except3
public static void main (String [] args)
// Создаем объект сканера
Сканер в = новый Сканер (Система.в);
Система.вне.print ("Введите число:");
пытаться
// Берем строковые данные от пользователя
int число = в.nextInt ();
// Распечатываем число
Система.вне.println ("Значение числа =" + число);
catch (InputMismatchException e)
// Распечатать сообщение об ошибке
Система.вне.println ("Строковое значение не принимается.");

наконец-то
// Закрываем объект сканера
в.Закрыть();
Система.вне.println ("Завершено из программы");


Выход:

78 дается как входное значение в следующем выходе после выполнения кода. Итак, здесь не создается никаких исключений. Сообщение из блока finally печатается позже.

Следующий, Привет дается как ввод после выполнения кода, который является строкой. Итак, генерируется исключение, и печатается сообщение об ошибке из блока catch. Сообщение из блока finally печатается позже.

Заключение:

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

Как использовать AutoKey для автоматизации игр под Linux
AutoKey - это утилита автоматизации рабочего стола для Linux и X11, запрограммированная на Python 3, GTK и Qt. Используя его функции сценариев и MACRO...
Как показать счетчик FPS в играх для Linux
Игры для Linux получили серьезный толчок, когда Valve объявила о поддержке Linux для клиента Steam и своих игр в 2012 году. С тех пор многие игры AAA ...
Как загрузить и играть в Sid Meier's Civilization VI в Linux
Введение в игру Civilization 6 - это современный подход к классической концепции, представленной в серии игр Age of Empires. Идея была довольно просто...