27
Universidad de oriente Núcleo de Monagas Departamento de Ingeniería de sistemas Curso Especial de Grado Maturín/ Monagas/ Venezuela Profesor: Ing. Jonathan Vásquez Equipo ASP.NET: Ronald Cortez Carlos Castro Maturín, Abril del 2015 Manejo de Errores

Errores

Embed Size (px)

Citation preview

Universidad de orienteNúcleo de Monagas

Departamento de Ingeniería de sistemasCurso Especial de Grado

Maturín/ Monagas/ Venezuela

Profesor: Ing. Jonathan Vásquez

Equipo ASP.NET:Ronald CortezCarlos Castro

Maturín, Abril del 2015

Manejo de Errores

CONTENIDO• Introducción

• Tipos de errores

• Errores de sintaxis

• Errores semánticos

• Errores de ejecución

• Manejos de excepciones

• Manejos de excepciones en Python

• Tratamiento de excepciones en Java

• Tipos de excepciones

• Excepciones checked

• Excepciones unchecked

• Cierre

• Conclusión

Introducción

Error

Errores

Tipos de Errores

Error de Sintaxis

Error Semántico

Error de Ejecución

Errores

Error de Sintaxis

Son detectados por el intérprete (o por el compilador, según el tipo de lenguaje que estemos utilizando) al procesar el código fuente y generalmente son consecuencia de equivocaciones al escribir el programa.

Ejemplos

• lenguaje C

• Java

Errores

Ejemplo en lenguaje C

printf( "\n Introduzca el primer número (entero): " );

un programador escribe:

prrintf( "\n Introduzca el primer número (entero): " );

Errores

Creemos un proyecto llamado SuperficieCuadrado y una clase llamada SuperficieCuadrado. Codificamos el algoritmo en Java e introducimos dos errores sintáctico:1 - Disponemos el nombre del objeto System con minúsculas.2 - Tratamos de imprimir el nombre de la variable superficie con el primer carácter en mayúsculas.

Ejemplo en Java

Errores

Código correcto

Errores

>>> while True print('Hola mundo')Traceback (most recent call last):... while True print('Hola mundo') ^SyntaxError: invalid syntax

Ejemplo en PYTHON

El intérprete repite la línea culpable y muestra una pequeña ‘flecha’ que apunta al primer lugar donde se detectó el error. Este es causado por (o al menos detectado en) el símbolo que precede a la flecha: en el ejemplo, el error se detecta en la función print(), ya que faltan dos puntos (':') antes del mismo. Se muestran el nombre del archivo y el número de línea para que sepas dónde mirar en caso de que la entrada venga de un programa.

Errores

Nos permite identificar muchas premisas que evaluamos y llevamos a cabo a su

debida formulación para así poder tomar una decisión.

Errores lógicos

Errores

Ejemplo Área de un cuadrado

Errores

Errores de ejecución

Un error de ejecución se produce cuando el ordenador no puede ejecutar alguna instrucción de

forma correcta. Por ejemplo, en lenguaje C, la instrucción:

c = 5 / 0;

es correcta sintácticamente y será traducida a código binario. Sin embargo, cuando la computadora intente

realizar la división:

5 / 0

se producirá un error de ejecución, ya que, matemáticamente, no se puede dividir entre cero.

Excepciones

Manejo de excepciones

Para el manejo de excepciones los lenguajes proveen ciertas palabras reservadas, que nos permiten manejar las excepciones que puedan surgir y tomar acciones de recuperación para evitar la interrupción del programa o,

al menos, para realizar algunas acciones adicionales antes de interrumpir el programa.

Excepciones

Excepciones en Python

En el caso de Python, el manejo de excepciones se hace mediante los bloques que utilizan las sentencias try, except y finally.Dentro del bloque try se ubica todo el código que pueda llegar a levantar una excepción, se utiliza el término levantar para referirse a la acción de generar una excepción.El bloque except, que se encarga de capturar la excepción y nos da la oportunidad de procesarla mostrando por ejemplo un mensaje adecuado al usuario.El bloque finally donde se escriben las sentencias de finalización, que son típicamente acciones de limpieza. La particularidad del bloque finally es que se ejecuta siempre, haya surgido una excepción o no.

Excepciones

Excepciones en Python

y=0x=10/yprint 'esta línea nunca se ejecuta'

Utilizando excepciones podemos capturar el error y continuar la ejecución del programa:y=0try: x=10/yexcept ZeroDivisionError: print 'No existe la división por cero‘print 'Esta línea si se ejecuta'

Excepciones

Excepciones en Python

lista1=['Keyla','Argenis','Ronald']

try:print lista1[5]

except IndexError:print 'Intenta acceder a un elemento no existente a

la lista'

Excepciones

Excepciones en Java

Todas las excepciones en Java se representan, como vamos a ver en la siguiente sección, a través de objetos que heredan, en última instancia, de la clase java.lang.Throwable..

Excepciones

Excepciones en Java

El lenguaje Java diferencia claramente entre tres tipos de excepciones: errores, comprobadas (en adelante checked) y no comprobadas (en adelante unchecked). El gráfico que se muestra a continuación muestra el árbol de herencia de las excepciones en Java (se omite el paquete de todas las que aparecen, que es java.lang):

ExcepcionesExcepciones Checked

Una excepción de tipo checked representa un error del cual técnicamente podemos recuperarnos.

class Exc2 { public static void main(String args[]) { int d, a; try { // controla un bloque de código. d = 0; a = 42 / d; System.out.println("Esto no se imprimirá."); } catch (ArithmeticException ) {// captura el error de división System.out.println("División por cero."); } System.out.println("Después de la sentencia catch."); }}

ExcepcionesExcepciones Checked

Una excepción de tipo unchecked representa un error de programación. Uno de los ejemplos más tipicos es el de intentar leer en un array de N elementos un elemento que se encuentra en una posición mayor que N:

int[] numerosPrimos = {1, 3, 5, 7, 9, 11, 13, 17, 19, 23}; // Array de diez elementos

int undecimoPrimo = numerosPrimos[10]; // Accedemos al undécimo elemento mediante el literal numérico 10

El código anterior accede a una posición inexistente dentro del array, y su ejecución lanzará la excepción uncheckedArrayIndexOutOfBoundsException (excepción de índice de array fuera de límite).

ExcepcionesExcepciones Checked

Esto es claramente un error de programación, ya que el código debería haber comprobado el tamaño del array antes de intentar acceder a una posición concreta:

int[] numerosPrimos = {1, 3, 5, 7, 9, 11, 13, 17, 19, 23}; int indiceUndecimoPrimo = 10; if(indiceUndecimoPrimo > numerosPrimos.length) { System.out.println("El índice proporcionado (" + indiceUndecimoPrimo + ") es mayor que el tamaño del array (" + numerosPrimos.length + ")"); } else { int undecimoPrimo = numerosPrimos[indiceUndecimoPrimo]; // ... }

Cierre

Conclusiones

Podemos calcular si la idea plasmada es verdadera o falsa.

Nos permite dar una opinión de acuerdo a un planteamiento o proposición, siendo así

una respuesta verdadera o falsa.

El hecho de que una proposición sea verdadera o falsa no significa de que su

contenido sea realmente verdadero o falso.

Referencias Bibliográficas

l

http://www.google.co.ve/imgres?imgurl=http://image.slidesharecdn.com/201508manejoestructuradodeexcepciones-pdf1-091027000730-phpapp02/95/manejo-estructurado-de-excepciones-3-728.jpg%253Fcb%253D1256620063&imgrefurl=http://es.slideshare.net/marfonline/manejo-estructurado-de-excepciones&h=728&w=942&tbnid=JlCTN0-h5HQfsM:&zoom=1&docid=oa27O_oAilFrxM&ei=O4IgVeCQM4GTsAXYrYGQDA&tbm=isch&ved=0CB0QMygDMAM

Errores y Excepciones

¿Preguntas?

GRACIAS PORSU ATENCIÓN