Java - Programare independenta de platforma - Tema

5
Ţigănaşu Alexandru – Grupa 1301 A PIP- Laborator Tema nr. 6 1. Definiţi o referinţă de obiect pe valoarea de iniţializare null. Încercaţi să apelaţi o metodă pentru această referinţă. Scrieţi codul aferent capturii acestei excepţii. Exceptie.java public class Exceptie { Exceptie ex=new Exceptie(); static Integer ref=null; public static void main(String[] args){ try{ throw new Exception("Am detectat o exceptie "+ref); }catch(Exception e){ System.out.println("Captura exceptie"); System.out.println("e.getMessage():"+e.getMessage()); System.out.println("e.toString():"+e.toString()); System.out.println("e.printStackTrace():"); e.printStackTrace(); } } } Rezultat: Captura exceptie e.getMessage():Am detectat o exceptie null e.toString():java.lang.Exception : Am detectat o exceptie null e.printStackTrace(): java.lang.Exception : Am detectat o exceptie null at Exceptie.main(Exceptie.java:7 ) 2. Scrieţi codul pentru generarea şi captura excepţiei ArrayIndexOutOfBoundsException. Array.java 1

description

Rezolvare probleme Java, in eclipse juno la materia programare independenta de platforma, facultate, automatica si calculatoare

Transcript of Java - Programare independenta de platforma - Tema

Page 1: Java - Programare independenta de platforma - Tema

Ţigănaşu Alexandru – Grupa 1301 A PIP- Laborator

Tema nr. 6

1. Definiţi o referinţă de obiect pe valoarea de iniţializare null. Încercaţi să apelaţi o metodă pentru această referinţă. Scrieţi codul aferent capturii acestei excepţii.

Exceptie.java

public class Exceptie {Exceptie ex=new Exceptie();static Integer ref=null;public static void main(String[] args){

try{throw new Exception("Am detectat o exceptie "+ref);

}catch(Exception e){System.out.println("Captura exceptie");System.out.println("e.getMessage():"+e.getMessage());System.out.println("e.toString():"+e.toString());System.out.println("e.printStackTrace():");e.printStackTrace();

}

}

}

Rezultat: Captura exceptiee.getMessage():Am detectat o exceptie nulle.toString():java.lang.Exception: Am detectat o exceptie nulle.printStackTrace():java.lang.Exception: Am detectat o exceptie null

at Exceptie.main(Exceptie.java:7)

2. Scrieţi codul pentru generarea şi captura excepţiei ArrayIndexOutOfBoundsException.

Array.java

public class Array {public static void main(String[] args){

int[] x=new int[3];for(int i=0;i<x.length;i++){

x[i]=i;}try{

x[5]=10;}catch(ArrayIndexOutOfBoundsException e){

System.out.println("Exceptie capturata");x[2]=10;

1

Page 2: Java - Programare independenta de platforma - Tema

Ţigănaşu Alexandru – Grupa 1301 A PIP- Laborator

System.out.println("x[2]= "+x[2]);}

}}

Rezultat: Exceptie capturata x[2]= 10

3. Creaţi o aplicaţie cu comportament de reluare a excepţiei (folosind o buclă while) atunci când o anumită excepţie nu mai este aruncată.

Main_class.java

class Clasa_I {int i;Clasa_I(int val){i=val;}int decrement(){

try{i=i-1;if(i==24) throw new Exception();

}catch(Exception e){System.out.println("exceptie");

}return i;

}}

public class Main_class{ public static void main(String[] args){

int i=25; Clasa_I c=new Clasa_I(i); do{

try{ i=c.decrement(); System.out.println(i);

}catch(Exception e){ System.out.println("exceptie din main");

} }while(i>0); System.out.println("i= "+i);

} }

2

Page 3: Java - Programare independenta de platforma - Tema

Ţigănaşu Alexandru – Grupa 1301 A PIP- Laborator

Rezultat:exceptie2423222120191817161514131211109876543210i= 0

4. Specificaţi cazurile de lucru restrictiv cu excepţii şi oferiţi câte un exemplu pentru fiecare.

Restrictii.java

class ExceptiePrincipala extends Exception{}class ExceptieDerivata extends ExceptiePrincipala{}

class Exceptie1{ Exceptie1() throws ExceptiePrincipala{

System.out.println("ExceptiePrincipala din superclasa"); } void metoda() throws ExceptiePrincipala{

System.out.println("Exceptie din superclasa"); }}

public class Restrictii extends Exceptie1{Restrictii() throws ExceptieDerivata,ExceptiePrincipala{

System.out.println("Exceptie din constructor");}public void metoda() throws ExceptieDerivata,ExceptiePrincipala{

System.out.println("Exceptie din metoda");}public static void main(String[] args){

try{

3

Page 4: Java - Programare independenta de platforma - Tema

Ţigănaşu Alexandru – Grupa 1301 A PIP- Laborator

Exceptie1 r=new Restrictii();r.metoda();

}catch(ExceptieDerivata e){System.out.println("Exceptie derivata capturata");

}catch(ExceptiePrincipala e){

System.out.println("Exceptie principala capturata");}

}}

Rezultat:

ExceptiePrincipala din superclasaExceptie din constructorExceptie din metoda

4