Java

Java обработка на изключения

Java обработка на изключения
Когато нормалният поток на изпълнението на програмата прекъсне всяка грешка, това се нарича изключение. Този тип събитие може да се обработи чрез опит-улов-накрая блок. Изключение е обект, който се използва за улавяне на грешката и стартиране на израза въз основа на условието за грешка, което се нарича обработка на изключения. Основно два вида грешки се обработват чрез обработка на изключения. Това са компилирано време грешки и време на изпълнение грешки. The време на изпълнение грешките се обработват чрез обработка на изключения. Как можете да се справите с изключенията в Java е обяснено в този урок.

Синтаксис:

Синтаксисът на опит-улов-накрая блок е даден по-долу.

опитвам
изявление 1 ... N

catch (ExceptiontType var)
изявление 1 ... N

накрая
изявление 1 ... N

Тук, ако възникне изключение в рамките на блока try, тогава изключението ще бъде хвърлено към блока catch и окончателният блок е незадължителен тук. Кодът на блока окончателно изпълнява дали възниква изключение или не.

Пример-1: Обработка на изключения с единичен блок за улавяне

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

внос java.io.BufferedReader;
внос java.io.FileReader;
внос java.io.IOException;
внос java.util.Скенер;
публичен клас освен1
публична статична void main (String [] args)
// Създаване на обект на скенер
Scanner in = нов скенер (System.в);
Система.навън.print ("Въведете името на файла:");
// Вземете низови данни от потребителя
String FileName = в.следващия();
опитвам
// Създаване на обект на четец
BufferedReader четец = нов BufferedReader (нов FileReader (FileName));
// Прочетете първия ред, ако файлът съществува
Струнна линия = четец.readLine ();
докато (линия != нула)
// Печат на реда
Система.навън.println (ред);
// Прочетете следващия ред
линия = четец.readLine ();

// Затворете обекта на четеца
четец.близо();
// Затворете обекта на скенера
в.близо();
catch (IOException e)
// Отпечатваме съобщението за грешка
Система.навън.println ("Файлът не съществува");


Изход:

В следващия изход,  'Здравейте.текст' се дава като име на файл, което не съществува. Така се отпечатва следното съобщение.

Следващият път, файл1.текст се дава като съществуващо име на файл, а изходът показва съдържанието на файла.

Пример-2: Обработка на изключения с множество блокове за хващане

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

внос java.util.Скенер;
публичен клас, освен2
публична статична void main (String [] args)

опитвам

// Деклариране на числов масив
int num_arr [] = нов int [4];
// Създаване на обект на скенер
Scanner in = нов скенер (System.в);
Система.навън.println ("Въведете четири числа:");
// Итерирайте цикъла четири пъти
за (int i = 0; i < 4; i++)
// Входен номер
int n = in.nextInt ();
// Присвояване на стойност на масив
num_arr [i] = n;

Система.навън.println ("Стойностите на масива са:");
// Итерация на цикъла пет пъти
за (int i = 0; i < 4; i++)
// Отпечатваме стойностите на масива
Система.навън.println (num_arr [i]);

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

catch (ArithmeticException e)

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

catch (ArrayIndexOutOfBoundsException e)

Система.навън.println ("Възникна стойност на индекса извън масива");

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

Система.навън.println ("Числовата стойност не е дадена");


Изход:

Следващият изход показва, че стойностите на масива са вмъкнати и отпечатани правилно, но третият блок за хващане се изпълнява, тъй като 50 е разделен на 0, което е грешка.

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

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

Използването на block накрая с блока try-catch е показано в следващия пример. Кодът на окончателно блокиране се изпълнява, ако възникне изключение или не. В кода от потребителя ще бъде взета целочислена стойност. Ако потребителят даде някаква низова стойност, тогава InputMismatchException

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

внос java.util.Скенер;
внос java.util.InputMismatchException;
публичен клас, освен3
публична статична void main (String [] args)
// Създаване на обект на скенер
Scanner in = нов скенер (System.в);
Система.навън.print ("Въведете номер:");
опитвам
// Вземете низови данни от потребителя
int номер = в.nextInt ();
// Отпечатваме номера
Система.навън.println ("Стойността на числото =" + число);
catch (InputMismatchException e)
// Печат на съобщение за грешка
Система.навън.println ("Стойността на низа не се приема.");

накрая
// Затворете обекта на скенера
в.близо();
Система.навън.println ("Прекратено от програмата");


Изход:

78 се дава като входна стойност в следващия изход след изпълнение на кода. Така че, тук не се генерира изключение. Съобщението от блока окончателно се отпечатва по-късно.

Следващия, Здравейте се дава като вход след изпълнение на кода, който е низ. И така, генерира се изключение и се отпечатва съобщението за грешка от блока catch. Съобщението от блока окончателно се отпечатва по-късно.

Заключение:

Обработката на изключения е много важна и полезна характеристика на всеки език за програмиране, която може да се използва за скриване на реалното съобщение за грешка от потребителя и предоставяне на четеното от човека съобщение за грешка, за да може потребителят да разбере грешката правилно. Този урок помага на потребителя да научи различни начини за прилагане на обработка на изключения в Java и да направи техния код по-подходящ.

Как да инсталирате League Of Legends на Ubuntu 14.04
Ако сте фен на League of Legends, това е възможност за вас да тествате League of Legends. Имайте предвид, че LOL се поддържа на PlayOnLinux, ако сте п...
Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...