Java - Programare independenta de platforma - Tema
-
Upload
vlad-stegariu -
Category
Documents
-
view
21 -
download
4
description
Transcript of 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
Ţ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
Ţ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
Ţ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