Programavimas

Veiksmo išimtys

Ankstesnis 1 2 3 4 Puslapis 3 Kitas 3 puslapis iš 4

Išimties rinkinio pavyzdys

1 paveiksle matote keturių rūšių išimtis, skirtas keturių rūšių veiksmams atlikti:

  1. Verslo išimtis: Įvyko išskirtinė būklė. Ši sąlyga buvo numatyta ir ją galima patikrinti skubių veiksmų metodu.
  2. Parametras Išimtis: Įvesti duomenys neleidžia tinkamai tvarkyti. Vartotojo reikia paprašyti iš naujo įvesti galiojančius duomenis arba pakeisti sąlygas, kuriomis vyksta apdorojimas.
  3. Techninė išimtis: Iškilo tokia techninė problema kaip netinkamas SQL sakinys. Prašomos operacijos atlikti negalima. Vartotojas turėtų kreiptis į pagalbos tarnybą dėl tyrimo arba išbandyti kitą paslaugą. Tai neturi įtakos kitų vartotojų naudojimui programa.
  4. „CriticalTechnicalException“: Iškilo tokia techninė problema kaip duomenų bazės gedimas. Šiomis sąlygomis visa programa nėra tinkama naudoti. Vartotojas turėtų būti paragintas vėliau bandyti dar kartą. Kiti vartotojai neturėtų naudoti programos, kol ji nebus pataisyta.

Šis išimčių rinkinys yra tik vienas pavyzdys; daugelį kitų išimčių rinkinių būtų galima apibrėžti panašiai. Pavyzdžiui, Techninė išimtis ir „CriticalTechnicalException“ galėtų būti suprojektuotas kaip viena išimties klasė su loginiu elementu sunkumas atributas. Svarbu sutelkti dėmesį į veiksmus, kurių reikėtų imtis, o ne į klausimą, dėl kurio kilo išimtis.

Išimčių registravimas

Nors išimčių semantika orientuota į veiksmus, kurių reikia imtis, iškeltas klausimas taip pat yra svarbus. Kūrėjų komanda, pavyzdžiui, galėtų naudoti šią informaciją derindama kodą. Mano išimčių dizaine informaciją apie išimties priežastį galima rasti programos klaidų žurnalo faile. Turint gerą registravimo sistemą, turėtų pakakti registruoti informaciją apie problemą iš išimties pranešimo ir kamino pėdsakų.

Lieka vienintelis klausimas, kaip sukurti išimtį, kad šią informaciją būtų lengva gauti. Vienas iš sprendimų yra numatyti išimtį su id atributas, atspindintis nagrinėjamos problemos rūšį. Be to, jei problema turi savo išimtį, ši išimtis gali būti įtraukta į programos išimtį. Gavimo metu iš įdėtos išimties galima gauti pradinį pranešimą ir kaupimo pėdsakus. id atributas ir išimties lizdas yra du būdai įtraukti su problema susijusią informaciją į pačią išimtį.

Išimčių srauto projektavimas

Sukūrę pačias išimtis, kitas žingsnis yra pagalvoti apie tai, kaip jos plis per jūsų programą. Standartinę JEE programų architektūrą daugiausia sudaro keturi paketai: pristatymas, verslas, integracija ir atkaklumas. Išimtis paprastai daro integravimo ir atkaklumo paketai. Verslo pakete vidiniai vykdymo laiko sluoksniai kuo greičiau sugauna patikrintas išimtis, o išoriniai - vykdymo laiko išimtis ir imasi atitinkamų veiksmų pagal savo klasę. Taip pat galite išmesti ir sugauti keletą patikrintų išimčių verslo pakete. Šioje schemoje integravimo ir atkaklumo paketų, taip pat verslo paketo vidinio sluoksnio, pareiga yra vykdymo laiko išimtis paversti veiksmais. Tipinė tokio tipo JEE taikymo architektūra parodyta 2 paveiksle.

Išimties, išmestos iš atkaklumo paketo, kelias (pavyzdžiui) priklauso nuo to, kur galima išspręsti problemą. Jei skambinimo metodas gali išspręsti problemą, išimtis užklumpa nedelsiant, imamasi atitinkamų veiksmų ir verslas vyksta įprastai. Jei nepavyksta išspręsti problemos, išimtis įtraukiama į vykdymo laiko išimtį ir tyliai perkeliama per tarpinius verslo paketo sluoksnius į viršutinius programos sluoksnius. Šiuose sluoksniuose, paprastai naudojant tam tikrą programų valdiklį, vykdymo laiko išimtis yra užfiksuota, atliekamas atitinkamas veiksmas ir pateikimo sluoksnis pateikia vartotojui atitinkamą klaidos pranešimą. Skubus patikrintų išimčių gavimas ir pavėluotas vykdymo laiko išimčių gavimas yra du pagrindiniai tokio tipo išimčių scenarijai, kaip parodyta 3 paveiksle.

$config[zx-auto] not found$config[zx-overlay] not found