Sunteți pe pagina 1din 4

ignau Alexandru Grupa 1301 A

PIP- Laborator

Tema nr. 6

1. Definii o referin de obiect pe valoarea de iniializare null. ncercai s apelai o


metod pentru aceast referin. Scriei codul aferent capturii acestei excepii.
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. Scriei codul pentru generarea i captura excepiei 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;
System.out.println("x[2]= "+x[2]);
}
}
}

ignau Alexandru Grupa 1301 A

PIP- Laborator

Rezultat:
Exceptie capturata
x[2]= 10

3. Creai o aplicaie cu comportament de reluare a excepiei (folosind o bucl while) atunci


cnd o anumit excepie 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);
}
}
Rezultat:
exceptie
24
23
22
21
20
19
18
17
16
15
14
13

ignau Alexandru Grupa 1301 A

PIP- Laborator

12
11
10
9
8
7
6
5
4
3
2
1
0
i= 0

4. Specificai cazurile de lucru restrictiv cu excepii i oferii cte 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{
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 superclasa
Exceptie din constructor
Exceptie din metoda

ignau Alexandru Grupa 1301 A

PIP- Laborator

S-ar putea să vă placă și