Jump to content

[JAVA]Metode riscante si exceptii


Quadro
 Share

Recommended Posts

Metode riscante si exceptii in Java

 

 

 

Mecanismul de tratare a exceptiilor in Java reprezinta o modalitate clara si eleganta de a rezolva situatiile exceptionale cara apar in timpul executiei; iti perminte sa scrii cod de tratare a erorilor intr-un singur loc, astfel incat sa fie usor de urmarit. Se bazeaza pe faptul ca tu stii ca metoda pe care o apelezi este riscanta (adica metoda ar putea sa genereze o exceptie), asa ca scrii codul necesar pentru a face fata unei asemenea situatii. Daca stii ca ar putea aparea o exceptie atunci cand apelezi o anumita metoda, poti sa te pregatesti pentru rezolvarea problemei care a cauzat - si poate chiar pentru refacerea starii programului in urma exceptiei.

 

Ca urmare, de unde stii ca o metoda ar putea sa lanseze o exceptie? Din faptul ca vei gasi o cluaza throws in declaratie metodei riscante:

mididevice.png

 

Daca incadrezi codul riscant in ceva numit try/catch, compilatorul stie ca poate sa doarma linistit. Un bloc try/catch ii spune compilatorului ca stii ca poate aparea o situatie exceptionala in metoda pe care o apelezi si ca esti pregatit sa faci fata unei asemenea situatii. Compilatorului nu-i pasa cum rezolvi problema; tot ce conteaza este sa-i spui ca te vei ocupa de ea.

 

 

public class ClasaRiscanta {

 

public static void main(String[] argumente)

{

 

try{

faCevaRiscant();

}catch(Exception e)

{

 

}

}

 

}

 

 

Important !

  • O metoda poate lansa o exceptie atunci cand o operatie esueaza in timpul executiei.
  • O exceptie este intotdeauna un obiect de tip Exception (ceea ce inseamna ca obiectul apartine unei clase care are clasa Exception undeva in arborele de mostenire.
  • Compilatorul nu este interesat de exceptiile de tip RunTimeException. Nu este obligatoriu ca acest tip de exceptii sa fie incadrat intr-un bloc try/catch.
  • O metoda lanseaza o exceptie prin folosire cuvantului throw, urmat de o exceptie, creata ca obiect: throw new NoCaffeineException();
  • Metodele care ar putea sa lanseze o exceptie verifcata (de compilator) trebuie sa o declare, folosint o declaratie throws Exception
  • Daca esti pregatit sa tratezi o exceptie, incadreaza apelul metodei intr-un blov try/catch si pune codul de tratare a exceptiei in blocul catch.

Edited by Quadro
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.