EXCEPCIÓN DE ERRORES.

Slides:



Advertisements
Presentaciones similares
Programación de Computadores
Advertisements

Exceptions y Assertions Introducción a la terminología Bloques: try, catch Uso de finally Bloques: try, catch, finally Categorías de Exceptions Excepciones.
SENTENCIAS SECUENCIALES
Manejo de errores y excepciones
ADA: lenguaje de programación concurrente
Programación modular Procedimientos y Funciones
MANEJO DE EXCEPCIONES EN C++
Subprogramas: Procedimientos
Excepciones Las excepciones son señales (en forma de objeto) que se generan en ejecución en casos de errores, para que puedan ser gestionadas en el programa.
Arquitectura CLARO-TECNOTREE CAPITULO 4: Excepciones
Capitulo 4 Excepciones.
Siguiente Excepciones Introducción. AnteriorSiguiente Definición Una excepción es un evento que ocurre durante la ejecución de un programa que desestabiliza.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 1: Consideraciones acerca de la eficiencia.
FUNCIONES EN C.
Informática II Prof. Dr. Gustavo Patiño MJ
Informática II 1 Diego Fernando Serna RestrepoSemestre 2011/2.
Un lenguaje de programación para sistema empotrados
UNIVERSIDAD LATINA (UNILA)
Seminario de Lenguajes A – Opción Ada Seminario de Lenguajes A – Opción Ada – Raúl Champredonde1 Tipos definidos por el usuario –Parámetros array ilimitados.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
UNITA - IBARRA BLOQUES PL-SQL SUBPROGRAMAS Paulina Guevara.
Excepciones y archivos Info 033. Exception El término Exception es la palabra corta para la frase "evento excepcional." Definition: Una excepción es un.
Manejo de excepciones en Java
Funciones en lenguaje C
1 Procedimientos Es un conjunto de sentencias incluidas entre las declaraciones Sub o Function y End Sub/Function VB utiliza varios tipos de procedimientos:
INSTITUTO TECNOLOGICO DE TEHUACAN Ingeniería en sistemas computacionales Curso de apoyo a la titulación EXCEPCIONES EN JAVA Diciembre de 2008.
SQL SERVER APLICADO (SSA010) Ariel Alexis Fierro Sáez DuocUC.
TRAMPAS EN EL DISEÑO DE LENGUAJES CON RELACIÓN A LOS NOMBRES - REGLAS DE ALCANCE - COMPILACIÓN POR SEPARADO CONTROL DE FLUJO - EVALUACIÓN DE EXPRESIONES.
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
Sesión 6 Sentencias de Repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Manejo de Excepciones Agustín J. González ELO329.
Semana 5 Subprogramas..
PROCEDIMIENTOS FUNCIONES
Cobol C Pascal Fortran 5. UNIDADES DE PROGRAMAS SmallTalk Java C++
Ing. Ricardo Carlos Inquilla Quispe
Variables y Shapes. Variables ► Lugares de la memoria que reciben un nombre ► En VB no es necesario declarar las variables  A=8 ► Se declaran con Dim.
Conversión cadena a número
Subrutinas y Control de Abstracción
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
Material de apoyo Unidad 4 Estructura de datos
Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.
USO DE EXCEPCIONES EN JAVA LSC. Natalia Rodríguez Castellón.
Departamento de Sistemas Informáticos y Programación Universidad Complutense de Madrid Bloque 1: Introduccion Unidad 3: Análisis de algoritmos (parte I)
PL/SQL Francisco Moreno Universidad Nacional.
Control de errores visual basic
Teoría – Alejandro Gonzalez
Módulo 8: Manejo de Errores y Excepciones
Programación Orientada a Objetos Unidad 4 Excepciones Universidad de Chile Departamento de Ciencias de la Computación.
ING.CIP.IVAN PETRLIK AZABACHE. SEMANA 4 MANEJO DE EXCEPCIONES Y ERRORES.
Excepciones Unidad 5.
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Monitores Cabudare, noviembre de 2010 Universidad Fermín Toro
Programación orientada a objetos Capítulo 12 Manejo de errores.
1 5. UNIDADES DE PROGRAMAS. 2 Uso de mecanismos de control de secuencia de: Invocaciones Retornos Entre: PPSP 1 a) I R SP 1 SP 2 b) I R Unidades subordinadas.
27 de marzo de 2010 Presentan: Díaz Orea Elizabeth Leal Alvarado Angelina.
INTERRUPCIONES – ABRAZO MORTAL
MANEJO DE EXCEPCIONES. 21/11/2005 E.T.S de Ingenieros de Telecomunicacion.2 Índice ¿Qué es una excepción? Tipos de situaciones. Manejo de excepciones.
Excepciones definidas por el usuario Semana 7. Aprendizajes esperados Construye procedimientos almacenados, triggers de base de datos, cursores y funciones.
¿Qué son? – tipos – manejo - ejemplos
Excepciones predefinidas en PL/SQL Semana 6. Aprendizajes esperados Construye procedimientos almacenados, triggers de base de datos, cursores y funciones.
Metodología de Programación Ayudantía 4 lelagos.ublog.cl 2009.
Manejo Excepciones Profesor Elian Rojas Berroca 11/02/2015.
Ada 2º Parte (variables, ámbitos, subrutinas, tipos abstractos de datos y excepciones)
Curso: Fundamentos de Computación
SCITMina | by Microsoft Bienvenidos Eduardo Daniel Tenorio Mayo Microsoft Student Partner Taller de Programación Orientada a Objetos Con C# Edgar Edel.
Programación en Visual Basic
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible.
Omar Herrera Caamal Rigoberto Lizárraga Luis Cetina Luna.
P ROCESO DE E NSAMBLADO Cámara Vázquez Berenice Rubí.
Transcripción de la presentación:

EXCEPCIÓN DE ERRORES

ÍNDICE Introducción Tipos de excepciones Propagación de excepciones y Acción posterior a la excepción

1. Introducción al manejo de excepciones Excepción Manejador de excepción Levantamiento de una excepción

Esperando lo inesperado !! Ocurrencia de sucesos que se consideran excepcionales.

¿QUÉ ES UNA EXCEPCIÓN? DEFINICIÓN DE EXCEPCIÓN: Una excepción es un evento que ocurre durante la ejecución de un programa y que interrumpe el flujo normal de ejecución

Un mecanismo de manejo de excepciones debe cumplir una serie de requerimientos generales Debe ser simple de usar y entender. Separación del código para el manejo de las excepciones del código normal Tratamiento uniforme de las excepciones Debe permitir que las acciones de recuperación sean programadas.

¿QUÉ HACER CUANDO OCURRE UNA EXCEPCIÓN? Se levanta la excepción: Detener la ejecución normal del programa. Llamar a un subprograma (manejador de excepciones) que debe ejecutar acciones especiales.

Conceptos fundamentales MENEJADOR DE EXCEPCIONES Subprograma encargado de llevar acabo un conjunto de instrucciones que se ejecutan después de una excepción. LEVANTAR EXCEPCIÓN Acción de advertir una excepción en tiempo de ejecución.

2. Tipos de excepciones: 1. Manejo en lenguajes que no contenían implícito el manejo de excepciones 2. Manejo en lenguajes que sí lo contienen y permiten tener: Excepciones predefinidas por el lenguaje (Implícitas) Excepciones definidas por el programador (Explícitas)

• Cumple la propiedad de la simplicidad Ejemplo C: if (function_call(parameters) == AN_ERROR) { /* Código para el manejo del error */ } else { /* Código de retorno normal */ }; • Cumple la propiedad de la simplicidad • Permite que las acciones de recuperación sean programadas • El código no está separado de la actividad normal

Técnica de Bifurcación forzada: – Es una técnica de muy bajo nivel que se utiliza en lenguaje ensamblador. call rutina jmp error_1 jmp error_2 ; Procesamiento normal • Difícil de comprender y usar • El código no está separado de la actividad normal • Permite programar las acciones de recuperación

Procedure sub is valorprohibido: exception; --otras declaraciones de sub Begin --enunciados para procesamiento de sub Exception when valorprohibido => --manejador explícito when Constraint_Error => --manejador implícito when others => --manejador para resto excepciones End; --EJEMPLO DE ADA

Ejemplo Constraint_Error (restricción para sensor de temperatura): declare subtype Temperatura is Integer range 0..100; begin -- Leer la temperatura del sensor y calcular su valor . . . exception -- manejador para Constraint_Error end;

Algunas veces no es posible determinar la causa de la excepción: declare subtype Temperatura is Integer range 0..100; subtype Presión is Integer range 0..50; begin -- Leer el sensor de temperatura -- Leer el sensor de presión . . . exception -- manejador para Constraint_Error end;

Solución (aumentar el número de bloques) begin -- Leer el sensor de temperatura y calcular su valor exception -- Manejador para Constraint_Error para la temperatura end; -- Leer el sensor de presión y calcular su valor -- Manejador para Constraint_Error para la presión -- manejador para otras excepciones --Problema: la realización es larga y pesada.

Levantamiento con restricción explícita de una excepción Una excepción puede ser levantada mediante una operación primitiva del propio lenguaje. Donde, alternativamnete, el programador podría plantear de manera explícita una restricción (dependerá de si el lenguaje posee algún medio para instrumentarla)

Ejemplo (ADA): If X=0 then raise valorprohibido end if; El lenguaje contiene un subprograma con el manejador para la excepción planteada. La instrucción raise transfiere el control al manejador asociado.

Manejo de errores (ML): Exception denominadormalo of int; Fun InnerDivide(a:int, b:int):real= if b=0 then raise DenominadorMalo(b) else real(a)/real(b); Fun Divide(a,b)=InnerDivide(a,b) handle DenominatorMalo(b) => (print(b); “indeterminación, se usó=0”; 0.0); La ejecución continua

Ejemplo C++: La ejecución se detiene Try{ Enunciado1; ... If condicionmala {throw Nombreexcepción}; Catch Nombreexcepción { instrucción1 ...} } La ejecución se detiene

3. Propagación de excepciones y Acción posterior a la excepción • Cuando no existe un manejador local para una excepción, se busca un manejador a lo largo de la cadena de invocadores en tiempo de ejecución. Problema: Una excepción se puede propagar fuera de su ámbito de visibilidad. Solución: Manejadores por defecto para excepciones desconocidas (catch all).

Propagación de excepciones Subprog A Subprog B Excepción E E Es manejada por el manejador definido en B, y sino existe se propaga a A. De lo contrario se invoca al manejador Estandar definido por el programa.

¿Qué hacer Después de manejar la excepción? Cuando el manejador termina se pueden hacer dos cosas: Reanudar la ejecución del bloque Terminar la ejecución del bloque y devolver el control al punto de invocación.

Modelo de reanudación vuelve a ejecutar el procedimiento desde donde se levanto el error

Modelo de terminación se regresa a ejecutar a partir del procedimiento invocador

Ejemplo (ADA): package body Pila is Max : constant:= 100; p : array (1..Max) of Integer; top : Integer range 0..Max; procedure Push( x : Integer) is begin top:= top+1; p(top):= x; end Push; end Pila;

Si creamos un procedimiento llamado Principal que invoque a Push cuando la pila esté llena, el incremento de top producirá Constraint_Error. Ya que Push no maneja excepciones, la excepción se propagará al contexto del invocante. ¿Podemos asegurar que cuando se levante Constraint_Error en Principal es siempre debido a un desbordamiento de pila?

Una mejor forma:

FIN DE MANEJO DE EXCEPCIONES