Шта је ЈСП изузетак?
Изузеци се јављају када у коду постоји грешка или програмера или интерна грешка система.
Руковање изузецима у ЈСП је исто као у јави где изузецима управљамо помоћу три цатцх блокова.
За разлику од Јаве, у ЈСП-у постоје изузеци и када постоји грешка у коду.
Изузеци су три врсте:
- Означени изузетак
- РунтимеЕкцептион
- ЕррорсЕкцептион
Означени изузеци
Обично се ради о корисничкој грешци или проблеми које програмер не види називају се потврђеним изузецима.
Неки од примера су:
- ФилеНотФоундЕкцептион: Ово је проверени изузетак (где покушава да пронађе датотеку када датотека није пронађена на диску).
- ИО изузетак: Ово је такође означени изузетак ако се неки изузетак догодио током читања или писања датотеке, онда се ИО изузетак подиже.
- СКЛЕкцептион: Ово је такође проверени изузетак када је датотека повезана са СКЛ базом података, а постоји проблем са повезивањем СКЛ базе података, а затим се покреће СКЛЕкцептион
Изузеци током извођења
Изузеци током извођења су они које је програмер могао избећи. Они се игноришу у време састављања.
Неки од примера су:
- АрраиИндекОутОфБоундсЕкцептион: Ово је изузетак током извођења када величина низа премашује елементе.
- АритхметицЕкцептион: Ово је такође изузетак током извођења када постоје било које математичке операције које нису дозвољене у нормалним условима, на пример, подела броја са 0 даће изузетак.
- НуллПоинтер изузетак: Ово је такође изузетак током извођења који се покреће када је променљива или објекат нула када покушавамо да им приступимо. Ово је врло чест изузетак.
Грешке:
Проблем настаје услед контроле корисника или програмера. Ако се стек прелије, онда може доћи до грешке.
У наставку су наведени неки примери грешке:
- Грешка: Ова грешка је подкласа за бацање која указује на озбиљне проблеме које апликација не може да ухвати.
- Инстанцациона грешка: Ова грешка се јавља када покушавамо да направимо инстанцу објекта, а он то не успе.
- Интерна грешка: Ова грешка се јавља када дође до грешке из ЈВМ-а, тј. Јава виртуелне машине.
Изузетак грешке
То је инстанца класе која се може бацити и користи се на страницама са грешкама.
Неке методе класе за бацање су:
- Јавни низ гетМессаге () - враћа поруку о изузетку.
- Јавна тхроваблегетЦаусе () - враћа узрок изузетка
- Публиц принтСтацкТраце () - враћа стацктраце изузетка.
Пример
Екцептион_екампле.јсп
<% @ паге еррорПаге = "гуру_еррор.јсп"%><% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Изузетак Гуру ЈСП1 титле>хеад><боди><%инт број = 10;ако (број == 10){баци нови РунтимеЕкцептион ("Услов грешке !!!");}%>боди>хтмл>
Гуру_еррор.јсп
<% @ паге исЕррорПаге = "труе"%><% @ паге лангуаге = "јава" цонтентТипе = "тект / хтмл; цхарсет = ИСО-8859-1"пагеЕнцодинг = "ИСО-8859-1"%><хтмл><хеад><мета хттп-екуив = "Цонтент-Типе" цонтент = "тект / хтмл; цхарсет = ИСО-8859-1"><титле> Гуру страница са изузетком титле>хеад><боди><п> Дошло је до гуру изузећа п><% екцептион.принтСтацкТраце (респонсе.гетВритер ()); %>боди>хтмл>
Објашњење кода:
Екцептион_екампле.јсп
Линија кода 1: Овде постављамо страницу са грешком на гуру_еррор.јсп која ће се користити када се грешка преусмери.
Линија кода 15: узимамо променљиву нум и постављамо је на 10 и проверавамо стање ако је нум 10, а затим да избацимо Рунтиме Екцептион са поруком као Еррор Цондитион.
Гуру_еррор.јсп
Линија кода 1: Овде постављамо исЕррорПагеаттрибуте на труе.
Редак кода 12: Изузетак је покренут у изузетку_екампле.јсп помоћу објекта бацања и тај изузетак ће бити приказан овде као атрибут ИсЕррорПаге означен као истинит. Користећи изузетак (ово је објекат који ЈСП-у омогућава приступ подацима изузетака.) Покушавамо да одштампамо стацктраце грешке која се догодила у изузетку_екампле.јсп.
Када извршите горњи код, добићете следећи излаз:
Излаз:
Покренут је изузетак који је избачен из изузетка_екампле.јсп помоћу објекта бацања извођачког изузетка и добијамо горњи код.
Такође се позива гуру_еррор.јсп из којег је дошло до Гуру изузетка из ове датотеке.
Резиме:
Овде смо сазнали о изузецима у овом упутству и узели смо пример изузећа током извођења у водичу.