Руковање грешкама и изузецима у Делпхи апликацијама

Нажалост, апликације за изградњу укључују кодирање. Без обзира колико пажљиво пишете / исправљате програм, биће немогуће замислити сваку ситуацију која може поћи по злу. На примјер, неискусни корисник може покушати отворити непостојећу датотеку или унијети лошу вриједност у поље података.
Корисници праве грешке и требали бисмо бити спремни да обрађујемо / спречавамо ове грешке где год и кад год је то могуће.

Грешке, изузеци?

Изузетак је обично стање грешке или неки други догађај који прекида нормалан ток извршења у апликацији. Кад год дође до грешке приликом обраде линије кода, Делпхи ствара (подиже) објект потомак из ТОбјецт-а назван објект изузећа.

Чувани блокови

Апликација одговара на изузетак било извршавањем неког кода раскида, руковањем са изузетком или обоје. Начин омогућавања хватања грешке / изузећа унутар датог кода, изузетак се мора догодити унутар заштићеног блока изјава. Општи код изгледа:

покушати. {чувани блок кода} осим. почињу. {изузетак блок ручке СомеЕкцептион} крај; крај;
instagram viewer

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

Пример:

... Нула: = 0; покушати. лутка: = 10 / Нула; осим. на ЕЗероДивиде до. МессагеДлг ('Не могу се поделити на нулу!', МтЕррор, [мбОК], 0); крај;... 

Заштита ресурса

Када део кода стекне ресурс, често је потребно осигурати да се ресурс поново пусти (или ћете можда добити а цурење меморије), без обзира да ли се код нормално довршава или га прекида изузетак. У овом случају се користи синтакса напокон кључна реч и изгледа:

{неки код за доделу ресурса} покушати. {чувани блок кода} напокон. {блок прекида - код слободних ресурса} крај;

Пример:

... АбоутБок: = Т АбоутБок. Креирај (нула); покушати. АбоутБок. СховМодал; напокон. АбоутБок. Издање; крај;... 

Апликација. ОнЕкцептион

Ако ваша апликација не поднесе грешку која је проузроковала изузетак, тада ће Делпхи користити свој подразумевани руковатељ изузетака - управо ће искочити оквир са порукама. Можете размотрити писање кода у догађају ОнЕкцептион за објект ТАпплицатион како бисте заробили грешке на нивоу апликације.

Бреак Он Изузеци

Када правите програм са руковањем изузетком, можда нећете желети да се Делпхи пребија на Изузеци. Ово је сјајна функција ако желите да Делпхи покаже где се догодио изузетак; међутим, може бити неугодно кад тестирате сопствено руковање изузетком.

Мало завршних речи

Идеја овог чланка је да вам брзо погледате који су изузеци. За даљу расправу о поступању са изузецима, размотрите О руковању изузецима у руковању са изузетцима Делпхи, користећи алат попут Руковање рушењем Делпхи-а / изузетака помоћу извештавања о грешкама и неки од следећих сродних чланака: