Documente Academic
Documente Profesional
Documente Cultură
Membrii statici și
nestatici. Definirea constantelor.
Excepții.Blocurile
try,catch,finally.Definirea propriilor
excepții
profesor Dobrovolischii Olga
Metode
1. Care întorc un rezultat de un anumit tip, fie primitiv, fie referință.
Așa tip de metodă conține ca tipReturnat un tip concret de date compatibil obligatoriu cu tipul valorii
returnate ca rezultat dată în identificatorul rez_tipReturnat
Spre deosebire de datele membre obişnuite, datele membre statice nu aparţin fiecărui obiect al clasei, ci
există într-un singur exemplar comun tuturor obiectelor clasei respective.Se iniţializează automat cu
valoarea 0.
Pentru aceasta trebuie să instanțiați clasa . Cu ajutorul instanței veți putea accesa orice membri nestatici
din context static:
Definirea constantelor
O constantă este o variabilă a cărei valoare nu se poate modifica odată ce a fost atribuită. Java nu are
suport încorporat pentru constante, dar modificatorii variabili static și final pot fi folosiți pentru a crea unul
eficient.
Identificatorii de constante se scriu cu majuscule.
Modificator static
Acest lucru permite utilizarea unei variabile fără a crea mai întâi o instanță a clasei ; un membru de clasă
static este asociat cu clasa în sine, mai degrabă decât cu un obiect. Toate instanțele clasei partajează
aceeași copie a variabilei.
Aceasta înseamnă că o altă aplicație sau main () o poate folosi cu ușurință.
De exemplu, clasa myClass conține o variabilă statică days_in_week:
Excepțiile
O excepție este un eveniment anormal ce apare în timpul execuției unui program și duce la oprirea
acestuia.
O excepție poate fi generată din diverse motive :împărțirea la 0, deschiderea unui fișier cae nu există,
accesarea indexului unui tablou care depășește limitele acestuia , omiterea programării metodei main(),
accesarea unui obiect căruia nu i s-a oferit spațiu de memorie, etc..
Java pune la dispoziție clasa Throwable din care sunt extinse toate celelalte excepții, și care face parte
din următoarea ierarhie:
Excepțiile
Excepțiile
Clasa Object este părintele claselor Java.
În Java excepțiile derivate din clasele Error și RuntimeException sunt excepții neverificate(unchecked),
orice altă clasă derivată din Throwable este verificată(checked).
Instanțele clasei Error reprezintă erori interne, nerecuperabile, ale mediului de lucru Java. Aceste erori
sunt rare și de obicei fatale; nu le putem intercepta , însă există pentru ca Java să le poată folosi dacă
are nevoie de ele.
IOException ArrayIndexOutOfBoundsException
Eroare din cauza operațiilor de intrare/ieșire Indexul din șir este în afara limitelor
SQLException NumberFormatException
Eroare de accesare a serverului SQL Conversia dintr-un string într-un număr a eșuat
ClassNotFoundException NullPointerException
Eroare de încărcare a clasei de memorie Folosirea obiectului neinstanțiat(egal cu nul)
Tratarea excepțiilor
Java , la fel ca alte limbaje de programare , oferă tehnici speciale ce permit interceptarea și tratarea
excepțiilor într-un mod standard și destul de comod.
În Java tratarea excepțiilor este obligatorie , orice secvență de cod ce poate provoca excepții trebuie să
fie însoțită și de o modalitate de tratare a acesteia:
De exemplu:
}
Tratarea excepțiilor
2. folosind blocurile try...catch...finally:
Blocul try blochează toate instrucțiunile ce pot genera excepții. Are sintaxa:
try{
//instructiuni ce pot genera exceptii
}
Rețineți:
❖ Un bloc try poate fi urmat fie de un bloc catch fie de un bloc finally, însă nu poate exista de unul
singur.
❖ Dacă instrucțiunile grupate de blocul try vor genera o excepție aceasta va fi tratată de blocul catch
corespunzător tipului de eroare aruncată(generată).
❖ Dacă instrucțiunile se vor executa cu succes nu se va mai ține cont de tratarea excepțiilor și
aplicația se va executa în mod normal.
Tratarea excepțiilor
2. folosind blocurile try...catch...finally:
Blocul catch este blocul în care sunt tratate excepțiile. Are sintaxa:
ClasaDeExceptii reprezintă clasa excepției tratate. numeVariabilă este o variabilă cu ajutorul căreia putem
accesa metodele clasei excepției tratate. Deseori cu această variabilă nu se lucrează dar și în acest caz ea
trebuie declarată obligatoriu astfel obținem eroaresintactică precum că nu s-a respectat sintaxa instrucțiunii
catch.
Rețineți!
➢ Blocul catch Nu poate exista singur , ci doar însoțit de un bloc try
try{..} catch{...}
➢ Între blocul try și primul bloc catch nu pot exista alte instrucțiuni
➢ Un bloc try poate fi însotit de orice număr de blocuri catch
Observații:
❏ În cazul în care veți include codul ce poate genera excepții în blocul catch atunci programul va genera
eroare.
❏ În cazul în care la declararea blocului catch nu cunoașteți numele ClasaDeExceptii puteți indica numele
Tratarea excepțiilor
2. folosind blocurile try...catch...finally:
Exemplu:
Fără tratarea excepțiilor Cu tratare excepțiilor
}
3.Blocul finally nu apare niciodată singur ci în asociere cu blocul try. Cuprinde codul care trebuie să se
execute indiferent dacă apar excepții în blocul try sau nu. Prin clauza finally instrucțiunea try...catch
devine completă. Acest bloc are sintaxa:
finally{
//instructiuni executate indiferent
}
Instrucțiunea try...catch...finally are următoarea formă completă:
try{
… // instructiuni ce pot genera exceptii
} catch(TipExceptie1 ex){
… // instructiuni pentru tratarea exceptiilor de tip TipExceptie1
}
catch (TipExceptie2 ex){
… //instructiuni pentru tratarea exceptiei de tip TipExceptie2
}finally{
… // instructiuni executate indiferent de ce se intimpla in blocul try
}
Instrucțiunea Throw
Cu ajutorul instrucțiunii throw programatorul poate folosi modalități proprii de tratare a excepțiilor. De
obicei de acest lucru este nevoie atunci cînd apare o situație în care oricare excepție predefinită Java nu
este relevantă. Pentru aceasta este suficient de a defini o clasă derivată din Exception. Clasele derivate
de utilizator nu trebuie să implementeze nimic, simpla lor apartenență la ierarhia de tipuri permite
utilizarea lor ca excepții. Clasele create de utilizator dispun , prin moștenire, de proprietățile și metodele
definite de clasa Exception.
import java.util.InputMismatchException;
public class Exemp_Throw {
int nr = -1;
public static void main(String[] args) {
Exemp_Throw ob = new Exemp_Throw();
try {
if (ob.nr < 0)
throw new NumarNegativ("Fiti atenti");
} catch (NumarNegativ e) {
System.out.println("Introduceti un numar pozitiv”);
class NumarNegativ extends Exception {
NumarNegativ(String str) {
super(str);
}
}
Internal Working of Java Try-Catch