Excepții, Dispensabil, excepție

Acest articol discută despre modul de utilizare Java mecanism de manipulare excepție. Excepție în Java - un obiect care descrie starea excepțională a apărut în oricare din secțiunea de cod. Atunci când există o stare excepțională, creează un obiect de clasa Exception. Acest obiect este trimis la metoda care se va ocupa de acest tip de excepție. Excepțiile pot fi încântați și de a informa cu privire la unele situații de urgență.

Mecanismul de excepții în Java este susținută de cinci cuvinte-cheie:

Mai jos este o formă generală a blocului de manipulare excepție.

În partea de sus a ierarhiei de excepții ar trebui să Dispensabil de clasă. care este moștenit de la obiect. Fiecare dintre tipurile de excepții este o subclasă de Dispensabil. Doi moștenitor imediat ierarhia de clasă Dispensabil este împărțit în două subclase de excepții diferite ramuri. Ierarhia clasei este reprezentată în figură.

Excepții, Dispensabil, excepție

Clasa Ehception utilizat pentru a descrie situația excepțională pe care ar trebui să fie interceptate de codul de utilizator de program. Clasa de eroare este destinat să descrie excepțiile care, în condiții normale, nu ar trebui să fie interceptate în programul de utilizator.

Obiectele excluse sunt create în mod automat de mediul Java, ca urmare a unor situații excepționale. Programele exemplu, ceea ce creează o excepție la împărțirea la zero.

Consola va afișa următorul mesaj.

Se atrage atenția asupra faptului că tipul nu a fost ridicată Excepție excepție și Dispensabil. Aceasta este o subclasă a clasei Exception. și anume: ArithmeticException. explica ceea ce a apărut eroarea în timpul execuției programului.

Schimbarea clasei de adăugarea unei metode subrutină statică. care va crea aceeași excepție.

Mesajul programului arată modul în care o excepție de tratare a sistemului Java afișează întregul conținut al stiva de apel.

Pentru a proteja codul de excepții trebuie să utilizeze blocurile asociate cu cuvinte cheie încercați de captură; captura este plasat imediat după try-bloc. În blocul de captură este definită de tip excepție pentru a fi prelucrate.

Scopul de captură mai bine concepute -Chapters fi de prelucrare a avut loc o excepție și aducerea variabilele de program într-o stare rezonabilă - este că programul poate continua ca în cazul în care nu există erori și nu au fost (în exemplul nostru, un avertisment - diviziune cu zero).

Mai multe secțiuni de captură

În unele cazuri, blocul de cod poate provoca diferite tipuri de excepții. Pentru a localiza tratamentul unor situații similare, este posibil să se utilizeze mai multe -Chapters de captură pentru un try-bloc. Blocuri clasele de excepție cele mai specializate trebuie să vină în primul rând, pentru că nimeni nu subclasă nu va fi atins dacă ai pus-o după superclasa.

În acest exemplu, a interceptat două tipuri diferite de excepții, iar aceste două procesoare specializate ar trebui să facă parte din declarația de uz general de captură, intersectând toate subclase de Dispensabil.

Acest exemplu, care rulează fără parametri, determină diviziunea excitație excepție de la zero. În cazul în care unul sau mai mulți parametri, stabilind astfel „a“ la o valoare mai mare decât zero, excepția va fi ridicată de ieșire în străinătate indicele ArrayIndexOutOfBounds matrice este specificat în linia de comandă. Mai jos sunt rezultatele acestui program, și se execută o altă metodă.

încercați imbricate

O instructiune try poate fi imbricate. Dacă încercați declarația scăzută nici o secțiune de captură. care corespunde la o excepție este aruncată, stiva este implementat la o gradație de mai sus, și în căutarea unui handler adecvat Forum vor fi verificate de captură incorporare declarație try. Exemplul de înglobare doi operatori încercați să prind între ele prin intermediul apelului metodei.

Programul poate ridica în mod explicit o excepție folosind declarația aruncare. După executarea aruncarii a procesului programului este suspendat, iar declarațiile ulterioare nu sunt executate. JVM se uită la cele mai apropiate blocuri încercați. captura. exceptia de tip adecvat pentru „transferul de control“. În cazul în care un bloc adecvat nu este găsit, handler excepție se va opri programul și „Print“, cu starea de stiva de apel.

excluderea unui exemplu în care creează mai întâi un obiect excepție, atunci declarația arunca pentru a ridica excepții, și apoi aceeași excepție este ridicat din nou - de data aceasta pentru codul să-l intercepteze pentru prima secțiune de captură timp.

Ieșirea programului este prezentată mai jos.

Dacă o metodă poate arunca excepții, care ea însăși nu se ocupa, el trebuie să anunțe acest lucru cauzei sale alte metode pentru a se proteja de aceste excepții. Pentru a specifica o listă de excepții, care pot fi excitate de, cuvântul cheie aruncă.

Rezultatul Exemplu:

În cazul în care trebuie să efectuați este garantat un anumit cod de zonă, trebuie să utilizați cuvântul cheie în cele din urmă. Folosind încercări de comunicație. în cele din urmă permite executarea de cod, indiferent de ce fel de excepții au fost ridicate și interceptate, chiar și în acele cazuri în care nu există nici o metodă ridicată secțiunea corespunzătoare excepție de captură.

În fiecare secțiune, încercați să fie de cel puțin o partiție sau o captură sau în cele din urmă de bloc. Blocul în cele din urmă este foarte util pentru închiderea fișierelor și eliberarea tuturor celorlalte resurse capturate pentru utilizarea temporară la începutul metodei.

Mai jos este un exemplu de clasă cu două metode, finalizarea care există diferite motive, dar ambele înainte de eliberarea, codul în cele din urmă secțiune.

În metoda din Exemplul de testare methodA excepție este ridicată. Dar, înainte de o ieșire prematură din blocul try. secțiunea în cele din urmă. În a doua metodă methodB finalizat în declarația de încercare -bloc întoarcere. dar în același timp, înainte de a ieși din metoda se realizează în final blocul de cod. Rezultatul unui caz test:

Excepție de manipulare în Java oferă un mecanism extrem de puternic pentru a gestiona programe complexe. Cuvinte cheie încercați, arunca, de captură permit tratarea erorilor, precum și diverse neprevăzute în program.

captura - structura polimorfic, adică de captură în funcție de tipul de părinte capturile excepții de orice fel, care este Parent'om.

Ca urmare, consola va vedea

Excepție și eroarea ramurilor paralele ale Dispensabil moștenire. asa prinde unul „frate“ nu se poate prinde celălalt „frate.“

Rezultatul programului să îndeplinească următoarele

mai multe excepții