La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender.

Presentaciones similares


Presentación del tema: "Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender."— Transcripción de la presentación:

1 Computación II Unidad X Manejo de Excepciones

2 Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender como controlar las situaciones inesperadas. –Saber lanzar excepciones. –Saber manejar excepciones. –Conocer los distintos tipos de excepciones.

3 Contenidos: –Definición de excepción. –Tipos de excepciones. –Manejo de excepciones. –Try – Throw – Catch. –Clase Exception. Presentación de la Unidad

4 Definición de excepción Evento que ocurre durante la ejecución de un programa y requiere la ejecución de código fuera del flujo normal del programa. Una excepción no es necesariamente un error en la ejecución. Si no implementamos el manejo de excepciones, el programa que se ejecuta será terminado abruptamente. Las excepciones mas habituales son las peticiones de memoria fallidas.

5 Tipos de excepciones Síncronas: Asíncronas: Aparecen inmediatamente cuando un proceso intenta ejecutar una operación incorrecta. Aparecen algún tiempo después, en el proceso que intentó la operación errónea o en otro distinto Hardware: Software: ejemplos: error en índice de array, división por cero Hardware: Software: ejemplo: avería en dispositivo externo. ejemplo: error en comprobación de aserción (condición lógica) ejemplo: detección de límite de tiempo en una acción de otro proceso Generación Detección

6 Manejo de Excepciones En C++ el manejo de excepciones se basa en tres etapas: –Intento de ejecución de código. –Si se produce un evento anormal, se “lanza” la excepción. –La ejecución del programa se desvía a un sitio donde la excepción es “capturada”. La manipulación de excepciones consiste en transferir la ejecución del programa desde el punto donde se produce la excepción a un manipulador que coincida con el motivo de la excepción. C++ utiliza las palabras claves try, throw, catch para el manejo de excepciones

7 Try Se especifica un bloque de código cuya ejecución se va intentar utilizando la palabra clave “try” Si existe una situación excepcional durante el “intento”, se lanza una excepción y se transfiere el control de ejecución al punto donde exista un manejador (“handler”) de excepciones. En el lanzamiento se crea un objeto que es capturado por el handler. Para cada tipo de error se lanzará un tipo diferente de excepción. Si no se produce una excepción, el programa sigue el curso normal. Sintaxis: try{ //bloque de intento; donde se puede producir la excepción }

8 Throw Se detecta una circunstancia excepcional dentro del bloque “try”; se lanza una excepción mediante la ejecución de la sentencia “throw”. C++ especifica que todas las excepciones deben ser lanzadas desde el bloque “try”. Las excepciones son un objeto que contiene información que es capturada por el handler. El "throw" se comporta como un "return". El valor devuelto por el "throw" se asigna al objeto del "catch" adecuado. if (condition) throw “exception”;

9 Catch Parte del programa denominada “manejador” o “handler”. Sitio donde continua el programa en caso de que ocurra una situación excepcional. Debe existir al menos un manejador inmediatamente después de un bloque try. Sintaxis: try { ……………. }catch( ){ …………. } Los tipos de la expresión del "throw" y el especificado en el "catch" deben coincidir. Si no hay un "catch" adecuado, se abandona el programa. Existe un "catch" general, que captura cualquier "throw" para el que no exista un "catch“. catch(...) { //bloque de instrucciones }

10 Clase Exception Clase base "exception" de la que podemos heredar nuestras propias clases derivadas para pasar objetos a los manipuladores. Declarada en la librería “exception” class exception { public: exception() throw() { } //constructor virtual ~exception() throw(); //destrctor virtual const char* what() const throw(); /*devuelve el motivo de la excepcion*/ }; "throw()" sirve para indicar que estas funciones no pueden producir ningún tipo de excepción, es decir, que no contienen sentencias "throw".


Descargar ppt "Computación II Unidad X Manejo de Excepciones. Presentación de la Unidad Objetivos: –Saber manejar situaciones inesperadas dentro de un programa –Comprender."

Presentaciones similares


Anuncios Google