SlideShare una empresa de Scribd logo
1 de 20
TECNOLÓGICO NACIONAL DE MÉXICO
Instituto Tecnológico Superior de Guasave
Ingeniería en Sistemas Computacionales
Programación Orientada a Objetos
Unidad 5: Excepciones
PROGRAMACIÓN ORIENTADA A OBJETOS
Competencia de la unidad:
Comprende y aplica la clasificación de archivos y operaciones
básicas sobre éstos para manipular su información.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué son las Excepciones?
• Ocasionalmente es posible que ciertas instrucciones no funcionen
adecuadamente o se encuentren con problemas de ejecución no
contemplados. C++ proporciona un mecanismo para manejar este tipo
de situaciones o errores en tiempo de ejecución llamado Excepciones.
• El mecanismo de excepciones está basado en las palabras clave: try,
catch y throw.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué son las Excepciones?
• La forma en que trabaja éste mecanismo es que cuando ocurre un
evento o error inesperado C++ busca un segmento de código neutral,
esto es, la sección final del mecanismo, el bloque catch.
• Si todo salió bien y no se presentaron errores, únicamente se ejecutará
el código del bloque try, por lo tanto en éste caso el bloque catch es
completamente ignorado.
PROGRAMACIÓN ORIENTADA A OBJETOS
¿Qué son las Excepciones?
• Es importante señalar que los únicos errores que se pueden controlar
son los producidos en tiempo de ejecución dentro del propio programa,
conocidos como errores síncronos.
• Es imposible controlar errores debido al mal funcionamiento del sistema
por cortes eléctricos, bloqueos de la computadora, etc.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Podemos decir que el programa se prepara para cierta acción, decimos
que "lo intenta". Para ello se especifica un bloque de código cuya
ejecución se va a intentar ("try‐block") utilizando la palabra clave try:
PROGRAMACIÓN ORIENTADA A OBJETOS
• Un ejemplo sencillo sería la operación en la que se dividen dos
números, no puede realizarse una división entre cero por lo que C++
regresa un error crítico que provoca el cierre de la aplicación en caso de
no ser controlado por medio de una excepción.
PROGRAMACIÓN ORIENTADA A OBJETOS
El bloque catch
• Mediante la palabra clave catch especificamos el código encargado de
reaccionar ante una determinada excepción o conjunto de excepciones.
• En C++ es obligatorio que tras un bloque try se incluya al menos un
bloque catch, por lo que la sintaxis anterior quedaría completa de la
siguiente forma:
PROGRAMACIÓN ORIENTADA A OBJETOS
Lanzamiento de una excepción throw()
• Las excepciones no sólo las lanzan las funciones incluidas dentro de las
librerías externas, sino que nosotros podemos querer informar que algo
no ha ido bien dentro de la lógica de nuestro programa, esto se realiza
por medio de la instrucción throw().
PROGRAMACIÓN ORIENTADA A OBJETOS
El sistema tiene un número de excepciones predefinidas, que pueden, a su
vez, ser base para nuevas excepciones definidas por el programador.
• logic_error(str): son, en teoría, predecibles y por lo tanto evitables
mediante chequeos adecuados insertados en lugares estratégicos.
(#include <stdexcept>)
 domain_error(str)
 invalid_argument(str)
 length_error(str)
 out_of_range(str)
PROGRAMACIÓN ORIENTADA A OBJETOS
• runtime_error(str): son errores impredecibles y la única alternativa es
su manejo en tiempo de ejecución. (#include <stdexcept>)
 range_error(str)
 overflow_error(str)
 underflow_error(str)
• bad_alloc(): lanzada en fallo en new (#include <new>)
• bad_cast(): lanzada en fallo en dynamic_cast (#include <typeinfo>)
• bad_typeid(): lanzada en fallo en typeid (#include <typeinfo>)
• bad_exception(): lanzada en fallo en la especificacion de excepciones
lanzadas por una función. (#include <exception>)
PROGRAMACIÓN ORIENTADA A OBJETOS
Excepciones definidas por el lenguaje
• Como ya lo vimos en diapositivas anteriores es posible utilizar las
excepciones que el propio lenguaje C++ proporciona para ciertos
aspectos, como verificar si se produce un error al asignar memoria a un
vector, etc.
PROGRAMACIÓN ORIENTADA A OBJETOS
• Ejemplo: vemos el ejemplo de como validar por medio de excepciones un
programa crea arreglos y les asigna memoria, en este caso utilizamos
punteros debido a que los arreglos se crean de forma dinámica por lo que
se debe asignar un espacio de memoria para cada uno.
• Definición de puntero: Un puntero es una variable que contiene la
dirección de memoria de un dato o de otra variable que contiene al dato en
un arreglo.
PROGRAMACIÓN ORIENTADA A OBJETOS
#include <iostream>
#include <exception>
using namespace std;
class arreglos {
public:
double *ptr[50];
arreglos();
void dinamico();
};
arreglos::arreglos() { }
PROGRAMACIÓN ORIENTADA A OBJETOS
void arreglos::dinamico() {
try {
for (int i= 0 ; i < 50; i++) {
// asignación dinámica de memoria
ptr[i] = new double[50000000];
cout << "Reservando memoria "
<< i << endl;
}
} catch (bad_alloc ex){
cout << "Error: " << ex.what() << endl;
}
}
int main()
{
arreglos arr;
arr.dinamico();
return 0;
}
Ejemplo:
Excepciones lanzadas por el usuario
Ejemplo de como lanzar excepciones: Se lanzará una excepción al momento de
capturar un numero menor o igual a cero.
try {
cout << “capture num: ”;
cin>>num;
fflush(stdin);
if (num <=0) throw invalid_argument(“Numero no valido”);
} catch (invalid_argument e) {
cout << “Error: ” << e.what();
}
PROGRAMACIÓN ORIENTADA A OBJETOS
• Otra forma de lanzar excepciones es disparándolas en una función
independiente, la cual se encarga de evaluar los argumentos necesarios
y determinar si hay o no que lanzar la excepción.
• struct: esta orden se emplea para agrupar variables de tipos
iguales o diferentes en un solo registro, con la misma se
pueden crear estructuras anónimas o estructuras con nombre;
PROGRAMACIÓN ORIENTADA A OBJETOS
Ejemplo de como lanzar una excepción por medio de un método auxiliar
PROGRAMACIÓN ORIENTADA A OBJETOS
//creamos una clase que contenga un struct
class valNum {
public:
struct NUM_NOVALIDO { };
valNum();
valNum(int x);
int num;
};
valNum::valNum(){ // contructor
num=0;
}
// metodo que lanza la excepción en caso de recibir un
// entero menor o igual a cero
valNum::validar(int x) {
if (num <= 0) {
throw NUM_NOVALIDO();
}
}
// capturamos un número entero y se llama la validación
int main() {
valNum v;
try {
cout<<"Número: ";
cin >> v.num;
fflush(stdin);
v.validar(v.num);
} catch ( ... ) {
// evalua cualquier tipo de excepcion recibida
cout << "Error inesperado" << endl;
}
cin.get();
}
Ejercicio:
• Realice un programa utilizando POO, debe capturar un número y
obtener su factorial.
• El factorial de un número (n!) es la multiplicación de los número que
van del 1 a dicho número.
• El programa debe validar desde una función independiente que no se
capturen números menores o iguales a cero, en caso de hacerlo debe
devolver una excepción y mostrar un error en pantalla.
• Debe incluir un menú que permita calcular un número indeterminado
de factoriales.
PROGRAMACIÓN ORIENTADA A OBJETOS
Práctica:
• Realice un programa utilizando POO, debe capturar dos números y
realice la división de ambos.
• Cuando un número es dividió entre cero C++ produce un error, en este
caso debes realizar la división en una función que regresa el resultado,
en caso de recibir un divisor cero debes lanzar una excepción y
regresarla al punto donde llamaste la función y mandar el mensaje a la
pantalla.
PROGRAMACIÓN ORIENTADA A OBJETOS
Proyecto para manejo de excepciones
• Utilizando POO desarrolle un programa que capture un número, y después
pregunte a que raíz se le desea convertir.
• Los números negativos reales tienen la propiedad de que no pueden ser
convertidos a raíces pares.
• Cuando un número negativo sea capturado y se intente convertir a una raíz
par debes lanzar una excepción e indicar en pantalla que no es posible
realizar el cálculo.
• Debes utilizar todos los recursos que C++ te proporciona para lograr validar
y lanzar la excepción.
PROGRAMACIÓN ORIENTADA A OBJETOS

Más contenido relacionado

La actualidad más candente

Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezVanessa Ramirez
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de GrafosSandra Biondi
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalAngel Vázquez Patiño
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSEvans Balcazar
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaAngeles Rivera
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria EstaticaJ M
 
Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosFrancisco Javier Canizales Vazquez
 
Modelos de Programacion
Modelos de ProgramacionModelos de Programacion
Modelos de Programacionguideis_love
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciamonty19
 
Mapas de karnaugh (ejercicios resueltos)
Mapas de karnaugh (ejercicios resueltos)Mapas de karnaugh (ejercicios resueltos)
Mapas de karnaugh (ejercicios resueltos)Pablo Cruz Rodríguez
 
La Integral Indefinida
La  Integral IndefinidaLa  Integral Indefinida
La Integral IndefinidaERICK CONDE
 

La actualidad más candente (20)

Eficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa RamirezEficiencia de algoritmos - Vanessa Ramirez
Eficiencia de algoritmos - Vanessa Ramirez
 
Mapa Conceptual de Grafos
Mapa Conceptual de GrafosMapa Conceptual de Grafos
Mapa Conceptual de Grafos
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Programación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de KruskalProgramación 3: algoritmo de Prim y de Kruskal
Programación 3: algoritmo de Prim y de Kruskal
 
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOSANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructurada
 
Tipos de datos abstractos
Tipos de datos abstractosTipos de datos abstractos
Tipos de datos abstractos
 
Recursividad
RecursividadRecursividad
Recursividad
 
Memoria Estatica
Memoria EstaticaMemoria Estatica
Memoria Estatica
 
Estructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busquedaEstructura de Datos - Unidad 6 Metodos de busqueda
Estructura de Datos - Unidad 6 Metodos de busqueda
 
Árboles binarios, ABB y AVL
Árboles binarios, ABB y AVLÁrboles binarios, ABB y AVL
Árboles binarios, ABB y AVL
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 
Tabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetosTabla comparativa programación estructurada y orientada a objetos
Tabla comparativa programación estructurada y orientada a objetos
 
Aplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafosAplicaciones de los árboles y grafos
Aplicaciones de los árboles y grafos
 
Listas
ListasListas
Listas
 
AnáLisis De Algoritmos1
AnáLisis De Algoritmos1AnáLisis De Algoritmos1
AnáLisis De Algoritmos1
 
Modelos de Programacion
Modelos de ProgramacionModelos de Programacion
Modelos de Programacion
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Mapas de karnaugh (ejercicios resueltos)
Mapas de karnaugh (ejercicios resueltos)Mapas de karnaugh (ejercicios resueltos)
Mapas de karnaugh (ejercicios resueltos)
 
La Integral Indefinida
La  Integral IndefinidaLa  Integral Indefinida
La Integral Indefinida
 

Destacado

Mercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionMercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionJosé Antonio Sandoval Acosta
 
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de EvaluaciónTema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de EvaluaciónJosé Antonio Sandoval Acosta
 
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)José Antonio Sandoval Acosta
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilJosé Antonio Sandoval Acosta
 
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...José Antonio Sandoval Acosta
 
Planificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luzPlanificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luzALCIBAR ALMEIDA
 
Unidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizajeUnidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizajeROSA IMELDA GARCIA CHI
 
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...Ruber Duck
 
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacionM4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacionJosé Antonio Sandoval Acosta
 
Cuestionario acerca de metodologías ágiles de desarrollo de software
Cuestionario acerca de metodologías ágiles  de desarrollo de softwareCuestionario acerca de metodologías ágiles  de desarrollo de software
Cuestionario acerca de metodologías ágiles de desarrollo de softwareJosé Antonio Sandoval Acosta
 
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluaciónM4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluaciónJosé Antonio Sandoval Acosta
 

Destacado (20)

Simulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadraticoSimulacion - Algoritmo congruencial cuadratico
Simulacion - Algoritmo congruencial cuadratico
 
Mercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracionMercadotecnia Electronica - Tecnologias de integracion
Mercadotecnia Electronica - Tecnologias de integracion
 
Como hacer un Mapa Mental
Como hacer un Mapa MentalComo hacer un Mapa Mental
Como hacer un Mapa Mental
 
Simulación - Algoritmo de productos medios
Simulación - Algoritmo de productos mediosSimulación - Algoritmo de productos medios
Simulación - Algoritmo de productos medios
 
Estructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no linealesEstructura de Datos - Estructuras no lineales
Estructura de Datos - Estructuras no lineales
 
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015 M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
M2 actividad 2.3 INSTRUMENTACIÓN DIDÁCTICA 2015
 
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de EvaluaciónTema 4.3.1. Actividad 2: Instrumentos de Evaluación
Tema 4.3.1. Actividad 2: Instrumentos de Evaluación
 
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
 
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movilTópicos Avanzados de Programación - Unidad 5 Programacion movil
Tópicos Avanzados de Programación - Unidad 5 Programacion movil
 
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
M4 actividad 4.4.1 INTEGRACIÓN DE LOS INSTRUMENTOS DE EVALUACIÓN AL PROYECTO ...
 
Planificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luzPlanificación sobre la reflexión de la luz
Planificación sobre la reflexión de la luz
 
Unidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizajeUnidad 2. planeación de un ambiente de aprendizaje
Unidad 2. planeación de un ambiente de aprendizaje
 
10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp10 ejercicios resueltos en cpp
10 ejercicios resueltos en cpp
 
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...00001  b   1 ing.sistemas   f j 2014 mata ito-ac-po-004-08 formato int didact...
00001 b 1 ing.sistemas f j 2014 mata ito-ac-po-004-08 formato int didact...
 
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacionM4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
M4 4.3 Actividad 1. Tabla comparativa de instrumentos de evaluacion
 
Cuestionario acerca de metodologías ágiles de desarrollo de software
Cuestionario acerca de metodologías ágiles  de desarrollo de softwareCuestionario acerca de metodologías ágiles  de desarrollo de software
Cuestionario acerca de metodologías ágiles de desarrollo de software
 
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluaciónM4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
M4 4.2 actividad 2 Presentación Asertum - Hexágono de evaluación
 
Planeación didáctica química i unidad 1
Planeación didáctica química i unidad 1Planeación didáctica química i unidad 1
Planeación didáctica química i unidad 1
 
Simulación - Algoritmo lineal
Simulación - Algoritmo linealSimulación - Algoritmo lineal
Simulación - Algoritmo lineal
 
Portafolio tema 1
Portafolio tema 1Portafolio tema 1
Portafolio tema 1
 

Similar a Programación Orientada a Objetos - Unidad 5 Excepciones

Similar a Programación Orientada a Objetos - Unidad 5 Excepciones (20)

Errores
ErroresErrores
Errores
 
Mas sobre excepciones
Mas sobre excepcionesMas sobre excepciones
Mas sobre excepciones
 
Excepciones en Java
Excepciones en JavaExcepciones en Java
Excepciones en Java
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejerciciosCu00927 c gestion excepciones java try catch finally ejemplos ejercicios
Cu00927 c gestion excepciones java try catch finally ejemplos ejercicios
 
Tipos de excepciones
Tipos de excepcionesTipos de excepciones
Tipos de excepciones
 
Guia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesasercionesGuia demanejodeexcepcionesaserciones
Guia demanejodeexcepcionesaserciones
 
5 Mecanismos Reuntilizacion Abstraccion Final
5 Mecanismos Reuntilizacion Abstraccion Final5 Mecanismos Reuntilizacion Abstraccion Final
5 Mecanismos Reuntilizacion Abstraccion Final
 
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONESJAVA ORIENTADO A OBJETOS - EXCEPCIONES
JAVA ORIENTADO A OBJETOS - EXCEPCIONES
 
Resumen claudia u5
Resumen claudia u5Resumen claudia u5
Resumen claudia u5
 
11-Unidad 3: Encapsulamiento y modularidad
11-Unidad 3: Encapsulamiento y modularidad11-Unidad 3: Encapsulamiento y modularidad
11-Unidad 3: Encapsulamiento y modularidad
 
Clase 5
Clase 5Clase 5
Clase 5
 
Manejo de excepciones en vb
Manejo de excepciones en vbManejo de excepciones en vb
Manejo de excepciones en vb
 
Java5
Java5Java5
Java5
 
Manejo De Excepciones
Manejo De ExcepcionesManejo De Excepciones
Manejo De Excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Jyoc java-cap12 excepciones
Jyoc java-cap12 excepcionesJyoc java-cap12 excepciones
Jyoc java-cap12 excepciones
 
Excepciones
ExcepcionesExcepciones
Excepciones
 
Excepciones en java
Excepciones en javaExcepciones en java
Excepciones en java
 
Excepciones
ExcepcionesExcepciones
Excepciones
 

Más de José Antonio Sandoval Acosta

Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionJosé Antonio Sandoval Acosta
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosJosé Antonio Sandoval Acosta
 

Más de José Antonio Sandoval Acosta (20)

Linea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptxLinea del tiempo de la inteligencia artificial.pptx
Linea del tiempo de la inteligencia artificial.pptx
 
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptxUNIDAD 2 CLASIFICACION DE LOS  MATERIALES.pptx
UNIDAD 2 CLASIFICACION DE LOS MATERIALES.pptx
 
croquis de aulas UAIM topolobampo FEB 2024
croquis de aulas UAIM topolobampo  FEB 2024croquis de aulas UAIM topolobampo  FEB 2024
croquis de aulas UAIM topolobampo FEB 2024
 
Ing. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 MódulosIng. Mecatronica Prog. Básica, U5 Módulos
Ing. Mecatronica Prog. Básica, U5 Módulos
 
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructurasIng. Mecatronica Prog. Básica U4 Arreglos y estructuras
Ing. Mecatronica Prog. Básica U4 Arreglos y estructuras
 
Ing. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujoIng. Mecatrónica, Prog. Básica U3 control de flujo
Ing. Mecatrónica, Prog. Básica U3 control de flujo
 
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacionIng. Mecatrónica, Prog. Básica, U2 intro a la programacion
Ing. Mecatrónica, Prog. Básica, U2 intro a la programacion
 
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmosIng. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
Ing. Mecatrónica, Prog. Básica U1; Conceptos basicos y algoritmos
 
Manual de prácticas y antología para POO
Manual de prácticas y antología para  POOManual de prácticas y antología para  POO
Manual de prácticas y antología para POO
 
Aplicaciones móviles intro.
Aplicaciones móviles intro.Aplicaciones móviles intro.
Aplicaciones móviles intro.
 
Economia
EconomiaEconomia
Economia
 
ISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptxISCA-quimica-Equipo 2.pptx
ISCA-quimica-Equipo 2.pptx
 
Plantilla presentación.pptx
Plantilla presentación.pptxPlantilla presentación.pptx
Plantilla presentación.pptx
 
kitchenham.pptx
kitchenham.pptxkitchenham.pptx
kitchenham.pptx
 
Diagrama de Casos de Uso UML
Diagrama de Casos de Uso UMLDiagrama de Casos de Uso UML
Diagrama de Casos de Uso UML
 
Introducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UMLIntroducción al Diagrama de Clases UML
Introducción al Diagrama de Clases UML
 
Diagrama de clases UML
Diagrama de clases UMLDiagrama de clases UML
Diagrama de clases UML
 
Diagrama UML Casos de Uso
Diagrama UML Casos de UsoDiagrama UML Casos de Uso
Diagrama UML Casos de Uso
 
Tema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdfTema 3 - Comandos básicos.pdf
Tema 3 - Comandos básicos.pdf
 
Tema 1 - Intro.pdf
Tema 1 - Intro.pdfTema 1 - Intro.pdf
Tema 1 - Intro.pdf
 

Último

Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxHarryArmandoLazaroBa
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosOscarGonzalez231938
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdffredyflores58
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRyanimarca23
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidasNelsonQuispeQuispitu
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxEtse9
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxluisvalero46
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)mendezruben1901
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCANDECE
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaANDECE
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...humberto espejo
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 

Último (20)

Diagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptxDiagrama de flujo metalurgia del cobre..pptx
Diagrama de flujo metalurgia del cobre..pptx
 
Espontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneosEspontaneidad de las reacciones y procesos espontáneos
Espontaneidad de las reacciones y procesos espontáneos
 
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdfSEMANA  6 MEDIDAS DE TENDENCIA CENTRAL.pdf
SEMANA 6 MEDIDAS DE TENDENCIA CENTRAL.pdf
 
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdfMATPEL COMPLETO DESDE NIVEL I AL III.pdf
MATPEL COMPLETO DESDE NIVEL I AL III.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBRQUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
QUIMICA ORGANICA I ENOLES Y ENAMINAS LIBR
 
trabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidastrabajos en altura 2024, sistemas de contencion anticaidas
trabajos en altura 2024, sistemas de contencion anticaidas
 
produccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptxproduccion de cerdos. 2024 abril 20..pptx
produccion de cerdos. 2024 abril 20..pptx
 
Biología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptxBiología molecular ADN recombinante.pptx
Biología molecular ADN recombinante.pptx
 
Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)Sistema de Base de Datos (Rubén Alberto)
Sistema de Base de Datos (Rubén Alberto)
 
Edificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRCEdificio residencial Becrux en Madrid. Fachada de GRC
Edificio residencial Becrux en Madrid. Fachada de GRC
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Conservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de AlmeríaConservatorio de danza Kina Jiménez de Almería
Conservatorio de danza Kina Jiménez de Almería
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
594305198-OPCIONES-TARIFARIAS-Y-CONDICIONES-DE-APLICACION-DE-TARIFAS-A-USUARI...
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 

Programación Orientada a Objetos - Unidad 5 Excepciones

  • 1. TECNOLÓGICO NACIONAL DE MÉXICO Instituto Tecnológico Superior de Guasave Ingeniería en Sistemas Computacionales Programación Orientada a Objetos Unidad 5: Excepciones PROGRAMACIÓN ORIENTADA A OBJETOS
  • 2. Competencia de la unidad: Comprende y aplica la clasificación de archivos y operaciones básicas sobre éstos para manipular su información. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 3. ¿Qué son las Excepciones? • Ocasionalmente es posible que ciertas instrucciones no funcionen adecuadamente o se encuentren con problemas de ejecución no contemplados. C++ proporciona un mecanismo para manejar este tipo de situaciones o errores en tiempo de ejecución llamado Excepciones. • El mecanismo de excepciones está basado en las palabras clave: try, catch y throw. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 4. ¿Qué son las Excepciones? • La forma en que trabaja éste mecanismo es que cuando ocurre un evento o error inesperado C++ busca un segmento de código neutral, esto es, la sección final del mecanismo, el bloque catch. • Si todo salió bien y no se presentaron errores, únicamente se ejecutará el código del bloque try, por lo tanto en éste caso el bloque catch es completamente ignorado. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 5. ¿Qué son las Excepciones? • Es importante señalar que los únicos errores que se pueden controlar son los producidos en tiempo de ejecución dentro del propio programa, conocidos como errores síncronos. • Es imposible controlar errores debido al mal funcionamiento del sistema por cortes eléctricos, bloqueos de la computadora, etc. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 6. • Podemos decir que el programa se prepara para cierta acción, decimos que "lo intenta". Para ello se especifica un bloque de código cuya ejecución se va a intentar ("try‐block") utilizando la palabra clave try: PROGRAMACIÓN ORIENTADA A OBJETOS
  • 7. • Un ejemplo sencillo sería la operación en la que se dividen dos números, no puede realizarse una división entre cero por lo que C++ regresa un error crítico que provoca el cierre de la aplicación en caso de no ser controlado por medio de una excepción. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 8. El bloque catch • Mediante la palabra clave catch especificamos el código encargado de reaccionar ante una determinada excepción o conjunto de excepciones. • En C++ es obligatorio que tras un bloque try se incluya al menos un bloque catch, por lo que la sintaxis anterior quedaría completa de la siguiente forma: PROGRAMACIÓN ORIENTADA A OBJETOS
  • 9. Lanzamiento de una excepción throw() • Las excepciones no sólo las lanzan las funciones incluidas dentro de las librerías externas, sino que nosotros podemos querer informar que algo no ha ido bien dentro de la lógica de nuestro programa, esto se realiza por medio de la instrucción throw(). PROGRAMACIÓN ORIENTADA A OBJETOS
  • 10. El sistema tiene un número de excepciones predefinidas, que pueden, a su vez, ser base para nuevas excepciones definidas por el programador. • logic_error(str): son, en teoría, predecibles y por lo tanto evitables mediante chequeos adecuados insertados en lugares estratégicos. (#include <stdexcept>)  domain_error(str)  invalid_argument(str)  length_error(str)  out_of_range(str) PROGRAMACIÓN ORIENTADA A OBJETOS
  • 11. • runtime_error(str): son errores impredecibles y la única alternativa es su manejo en tiempo de ejecución. (#include <stdexcept>)  range_error(str)  overflow_error(str)  underflow_error(str) • bad_alloc(): lanzada en fallo en new (#include <new>) • bad_cast(): lanzada en fallo en dynamic_cast (#include <typeinfo>) • bad_typeid(): lanzada en fallo en typeid (#include <typeinfo>) • bad_exception(): lanzada en fallo en la especificacion de excepciones lanzadas por una función. (#include <exception>) PROGRAMACIÓN ORIENTADA A OBJETOS
  • 12. Excepciones definidas por el lenguaje • Como ya lo vimos en diapositivas anteriores es posible utilizar las excepciones que el propio lenguaje C++ proporciona para ciertos aspectos, como verificar si se produce un error al asignar memoria a un vector, etc. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 13. • Ejemplo: vemos el ejemplo de como validar por medio de excepciones un programa crea arreglos y les asigna memoria, en este caso utilizamos punteros debido a que los arreglos se crean de forma dinámica por lo que se debe asignar un espacio de memoria para cada uno. • Definición de puntero: Un puntero es una variable que contiene la dirección de memoria de un dato o de otra variable que contiene al dato en un arreglo. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 14. #include <iostream> #include <exception> using namespace std; class arreglos { public: double *ptr[50]; arreglos(); void dinamico(); }; arreglos::arreglos() { } PROGRAMACIÓN ORIENTADA A OBJETOS void arreglos::dinamico() { try { for (int i= 0 ; i < 50; i++) { // asignación dinámica de memoria ptr[i] = new double[50000000]; cout << "Reservando memoria " << i << endl; } } catch (bad_alloc ex){ cout << "Error: " << ex.what() << endl; } } int main() { arreglos arr; arr.dinamico(); return 0; } Ejemplo:
  • 15. Excepciones lanzadas por el usuario Ejemplo de como lanzar excepciones: Se lanzará una excepción al momento de capturar un numero menor o igual a cero. try { cout << “capture num: ”; cin>>num; fflush(stdin); if (num <=0) throw invalid_argument(“Numero no valido”); } catch (invalid_argument e) { cout << “Error: ” << e.what(); } PROGRAMACIÓN ORIENTADA A OBJETOS
  • 16. • Otra forma de lanzar excepciones es disparándolas en una función independiente, la cual se encarga de evaluar los argumentos necesarios y determinar si hay o no que lanzar la excepción. • struct: esta orden se emplea para agrupar variables de tipos iguales o diferentes en un solo registro, con la misma se pueden crear estructuras anónimas o estructuras con nombre; PROGRAMACIÓN ORIENTADA A OBJETOS
  • 17. Ejemplo de como lanzar una excepción por medio de un método auxiliar PROGRAMACIÓN ORIENTADA A OBJETOS //creamos una clase que contenga un struct class valNum { public: struct NUM_NOVALIDO { }; valNum(); valNum(int x); int num; }; valNum::valNum(){ // contructor num=0; } // metodo que lanza la excepción en caso de recibir un // entero menor o igual a cero valNum::validar(int x) { if (num <= 0) { throw NUM_NOVALIDO(); } } // capturamos un número entero y se llama la validación int main() { valNum v; try { cout<<"Número: "; cin >> v.num; fflush(stdin); v.validar(v.num); } catch ( ... ) { // evalua cualquier tipo de excepcion recibida cout << "Error inesperado" << endl; } cin.get(); }
  • 18. Ejercicio: • Realice un programa utilizando POO, debe capturar un número y obtener su factorial. • El factorial de un número (n!) es la multiplicación de los número que van del 1 a dicho número. • El programa debe validar desde una función independiente que no se capturen números menores o iguales a cero, en caso de hacerlo debe devolver una excepción y mostrar un error en pantalla. • Debe incluir un menú que permita calcular un número indeterminado de factoriales. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 19. Práctica: • Realice un programa utilizando POO, debe capturar dos números y realice la división de ambos. • Cuando un número es dividió entre cero C++ produce un error, en este caso debes realizar la división en una función que regresa el resultado, en caso de recibir un divisor cero debes lanzar una excepción y regresarla al punto donde llamaste la función y mandar el mensaje a la pantalla. PROGRAMACIÓN ORIENTADA A OBJETOS
  • 20. Proyecto para manejo de excepciones • Utilizando POO desarrolle un programa que capture un número, y después pregunte a que raíz se le desea convertir. • Los números negativos reales tienen la propiedad de que no pueden ser convertidos a raíces pares. • Cuando un número negativo sea capturado y se intente convertir a una raíz par debes lanzar una excepción e indicar en pantalla que no es posible realizar el cálculo. • Debes utilizar todos los recursos que C++ te proporciona para lograr validar y lanzar la excepción. PROGRAMACIÓN ORIENTADA A OBJETOS