throw new ConstructorExceptie(lista_argumente);
În limba engleză, throw este imperativul de la "a arunca". În această instrucțiune, se folosește operatorul new pentru a genera un obiect al clasei de excepții căreia îi aparține constructorul invocat, după care acest obiect este "aruncat", fie pentru a fi "prins" (captat) printr-o structura try .. catch și tratat prin program, fie pentru a fi preluat de mașina virtuală Java care, în acest caz, oprește execuția programului.
Exemplu
Instrucțiunea
if(a>1000) throw new Exception("Exceptie 102: a="+a);
"aruncă" o excepție din clasa Exception, care contine un mesaj sub forma argumentului furnizat constructorului.
Exemplu
În programul din fișierul TestExceptie.java
există metoda static int factorial(int n), care calculează
factorialul argumentului n. În această metodă este folosită
instrucțiunea throw de doua ori: pentru cazul în care
argumentul este negativ și pentru cel în care argumentul este prea mare
(rezultatul depășește valoarea maximă pentru tipul int al
valorii întoarse). În ambele cazuri, în instrucțiunea throw se
folosește constructorul clasei Exception, furnizându-i ca
argument un mesaj care arată ce eroare s-a produs. Întrucat aceste
excepții nu sunt tratate în metoda factorial, în declarația
metodei factorial s-a folosit clauza throws. În
metoda main se captează și se afișează atât aceste excepții,
cât și excepția NumberFormatException generată de metoda int
Integer.parseInt(String s) atunci când argumentul acesteia nu este
forma externă a unui număr întreg.
/* Testarea unei metode care genereaza exceptii.
Lansarea in executie a aplicatiei se face prin comanda: class TestExceptie { /* O metoda in care se genereaza exceptii prin clauza throw */ static int factorial(int n) throws Exception { /* In metoda main se capteaza si trateaza exceptiile
generate de |