Испробајте Цатцх на Јави: пример руковања изузецима

Преглед садржаја:

Anonim

Шта је изузетак у Јави?

Изузетак у Јави је догађај који прекида извршавање програмских упутстава и ремети нормалан ток извршавања програма. То је објекат који обавија информације о догађају грешке које су се догодиле унутар методе и прослеђују се систему извршавања. У Јави се изузеци углавном користе за указивање на различите врсте услова грешака.

У овом упутству ћете научити-

  • Шта је изузетак?
  • Зашто нам је потребан изузетак?
  • Како се поступа са изузетком
  • Испробајте Цатцх Блоцк
  • Јава хијерархија класе изузетка
  • Јава Напокон Блоцк

Постоје две врсте грешака:

  1. Саставите грешке у времену
  2. Грешке током извођења

Грешке у времену компајлирања могу се поново класификовати у две врсте:

  • Синтаксне грешке
  • Семантичке грешке

Пример синтаксних грешака:

Уместо да се изјасни

int a;погрешно сте је прогласили in a;за који ће компајлер избацити грешку.

Пример: Прогласили сте променљиву

int a;и после неколико редова кода поново проглашавате цео број као int a;. Све ове грешке се истичу када компајлирате код.

Пример рунтиме грешака

Рунтиме грешка назива се Екцептионс еррор. Било који догађај прекида нормалан ток извођења програма.

Примери за изузетке су аритметички изузетак, изузетак Нуллпоинтер, изузетак подељене нулом итд.

Изузеци у Јави су нешто што је ван контроле програмера.

Кликните овде ако видео снимку није доступан

Зашто нам је потребан изузетак?

Претпоставимо да сте кодирали програм за приступ серверу. Ствари су функционирале добро док сте развијали код.

Током стварне продукције, сервер је пао. Када је ваш програм покушао да му приступи, поставља се изузетак.

Како се поступа са изузетком

До сада смо видели, изузетак је ван контроле програмера. Али окривљавање кода за проблеме животне средине није решење. Потребно вам је робусно програмирање, које брине о изузетним ситуацијама. Такав код је познат под називом Екцептион Хандлер.

У нашем примеру, добро руковање изузецима било би када се сервер искључи, повезати са резервним сервером.

Да бисте то применили, унесите свој код за повезивање са сервером (користећи традиционалне услове иф и елсе).

Проверићете да ли је сервер искључен. Ако је одговор да, напишите код за повезивање са сервером за резервне копије.

Таква организација кода, користећи петљу „иф“ и „елсе“ није ефикасна када ваш код има више Јава изузетака за руковање.

class connect{if(Server Up){// code to connect to server}else{// code to connect to BACKUP server}}

Испробајте Цатцх Блоцк

Јава пружа уграђено изузетно руковање.

  1. Уобичајени код прелази у ТРИ блок.
  2. Код за руковање изузецима иде у блок ЦАТЦХ

У нашем примеру, блок ТРИ садржи код за повезивање са сервером. Блок ЦАТЦХ садржаће код за повезивање са резервним сервером.

У случају да сервер ради, код у блоку ЦАТЦХ ће се занемарити. У случају да сервер не ради, покреће се изузетак и извршит ће се код у цатцх блоку.

Дакле, овако се обрађује изузетак у Јави.

Синтакса за коришћење три & цатцх

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) Спремите датотеку и преведите код. Покрените програм помоћу команде, Јава ЈаваЕкцептион

Корак 3) Аритметички изузетак - подељено са нулом приказано је као испод за ред # 5 и ред # 6 се никада не извршава

Корак 4) Погледајмо сада како ће „три анд цатцх“ помоћи да се носимо са овим изузетком. Ми ћемо ставити изузетак изазива линију код у три блоку, након чега следи хватање блока. Копирајте следећи код у едитор.

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 неће извршити јер чим се подигне изузетак, ток контроле скаче до блока цатцх.

Напомена: Објекат АритметицЕкцептион „е“ садржи информације о изузећу који се догодио и који могу бити корисни у предузимању радњи опоравка.

Јава хијерархија класе изузетка

Након извршавања једне наредбе цатцх, остале се заобилазе, а извршавање се наставља након блока три / цатцх. Угњежђени блокови цатцх прате хијерархију изузетака.
  • Све класе изузетака у Јави проширују класу 'Тхровабле'. Тхровабле има две поткласе, Грешка и Изузетак
  • Класа грешака дефинише изузетак или проблеме за које наш програм не очекује да се појаве у нормалним околностима, пример грешке меморије, грешке хардвера, грешке ЈВМ итд.
  • Класа Екцептион представља изузетке са којима наш програм може да се бави, а наш програм се може опоравити из овог изузетка помоћу блока три анд цатцх
  • Изузетак током извођења је подкласа класе изузетка. Изузетак овог типа представља изузетак који се јавља у време извођења и који се не може пратити у време компајлирања. Одличан пример истог је подела са нула изузетка, или изузетак нулл показивача итд
  • ИО изузетак се генерише током улазних и излазних операција
  • Прекинути изузеци у Јави се генеришу током вишеструког навоја.
Пример: Да бисте разумели угнежђење блокова три анд цатцх

Корак 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) Спремите датотеку и преведите код. Покрените програм помоћу команде, Јава ЈаваЕкцептион .

Корак 3) Генерише се АрраиИндекОутОфБоундсЕкцептион. Промените вредност инт д на 0. Спремите, компајлирајте и покрените код.

Корак 4 ) АритхметицЕкцептион мора бити генерисан.

Корак 5) Оставите коментар од линије 10 до линије 12. Сачувајте, компајлирајте и покрените код.

Корак 6) Грешка при компилацији? То је зато што је Екцептион основна класа АритхметицЕкцептион Екцептион. Било којим изузетком који покрене АритхметицЕкцептион може се бавити и класа Екцептион. Дакле, блок цатцх АритхметицЕкцептион никада неће добити прилику да се изврши, што га чини сувишним. Отуда грешка у компилацији.

Јава Напокон Блоцк

Коначни блок се извршава без обзира на изузетак покренут у блоку три. Није обавезно за употребу са блоком три.

 try {statement(s)} catch (ExceptiontType name) {statement(s)} finally {statement(s)}

У случају да се у блоку три покрене изузетак, коначно се блок извршава након извршавања блока цатцх.

Пример

Корак 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) Промените вредност променљиве д = 1. Спремите, компајлирајте и покрените код и посматрајте излаз. Дно обрасца

Резиме :

  • Изузетак је грешка у Рун-тиме што прекида нормалан ток програма екецутион.Дисруптион током извршења програма се назива грешке или изузетак.
  • Грешке су класификоване у две категорије
    • Грешке времена компајлирања - Синтаксне грешке, Семантичке грешке
    • Рунтиме еррор - Изузетак
  • Робустан програм треба да обави све изузетке и наставити са својим нормалног тока извршења програма. Јава пружа уграђени изузетан начин руковања
  • Обрађивач изузетака је скуп кода који обрађује изузетак . Изузеци се могу обрадити на Јави помоћу функције три & цатцх.
  • Покушајте блокирати : Уобичајени код иде на овај блок.
  • Блок хватања : Ако у нормалном коду постоји грешка, он ће ући у овај блок