Professional Documents
Culture Documents
Ejercicio 2
No todos los lenguajes proveen un mecanismo para manejar excepciones. Pascal por
ejemplo.
Ejercicio 3
Existe la opción por parte del programador (en un lenguaje que no provee manejador
de excepciones):
Ejercicio 4
Por definición, las excepciones son condiciones anómalas que no puede ser manejada
por el procedimiento, lo cual supone que una unidad no está capacitada para
continuar la ejecución y debe terminar.
Ejercicio 5
Procedure Manejador;
Begin ... end;
Procedure P(X:Proc);
begin
....
if Error then X;
....
end;
Procedure A;
begin
....
P(Manejador);
….
end;
Este código simula el manejo de excepciones del modelo REASUNCIÓN utilizado por
PL1, ya que ante un error, ejecuta las sentencias definidas y luego sigue su ejecución en la
próxima sentencia.
Program Principal;
var x:int; b1,b2:boolean;
Procedure P (b1:boolean);
var x:int;
Procedure Manejador1
begin
x:=x + 1; //2
end;
begin
x:=1;
if b1=true then Manejador1;
x:=x+4; //6
end;
Procedure Manejador2;
begin
x:=x * 100; //400
end;
Begin
x:=4;
b:=true;
b1:=false;
if b1=false then Manejador2;
P(b);
write (x); //imprime: 400
End.
a) Implementación en PL/1:
Procedure Main
Var x:int; b1, b2:boolean;
Procedure P (b1:boolean);
Var x:int;
Begin
On condition (verdadero) begin
X:=x+1 //2
end;
X:=1;
If b1=true then signal (verdadero);
X:=x+4; //6
End P
On condition (falso) begin
X:=x*100; //400
end;
x:=4; b:=true; b1:=false
if b1==false then signal (falso);
P(b);
Write(x) //imprime:400
End Main
b) En ADA:
Procedure Main
x: int; b,b1:boolean;
e:exception;
Procedure A(b1:boolean)
Begin
If(b1==false) then raise e;
Exception
When e Begin
x:=x*100;
End
End A;
Procedure C()
e:exception;
begin
x:=x+1;
raise e;
End C;
Procedure B(b:boolean)
x:int;
Begin
x:=1;
if(b==true) then ProcedureC();
Exception when others Begin
x:=x+4;
End
End B;
Begin
x:=4; b:=true; b1:=false;
A(b1);
B(b);
Write(x);
End Main;
Ejercicio 8
a) Ejecución:
a. Manejadores que ejecuta: (Main) Except tipo1.
b. Valores de variables: z=0 (m=0)
Ejercicio 9
Java:
o Las excepciones son objetos que pueden ser alcanzados y manejados por
manejadores adicionales al bloque donde se produjo la excepción.
o Cada excepcion está representada por una instancia de la clase Throwable o
de una de sus subclases (Error y Exception)
o La gestión de excepciones se lleva a cabo mediante 5 palabras clave: try, catch,
throw, throws, finally.
o Tratamiento:
1- Detectar e informar sobre el error: un método detecta esta condición
anómala que le impide continuar su ejecución y finaliza “lanzando” un
objeto Exception.
2- Recoger el error y tratarlo: captura (try-catch), un método recibe un
objeto Exception y luego se decide actuar en función del tipo de error
Python:
o Su estructura es: Try, Except, Else, Finally.
o Un conjunto de excepcioens pueden ser manejadas por un mismo manejador:
except(exp1, exp2, ..): sentencias.
o Puede aparecer un except SIN nombre de excepción, pero solo al final (actúa
como comodín): except: sentencias.
o Si no se encuentra un manejador en su bloque “try except”:
1- Busca estáticamente.
2- Busca dinámicamente.
3- Si no encuentra se corta el proceso y larga mensaje estándar de error.
4- Levanta excepciones explícitamente con “raise”
Ejercicio 12