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
• 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
Error
Tipos de Errores
Error de Sintaxis
Error Semántico
Error de Ejecución
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.
• lenguaje C
• Java
Ejemplo en lenguaje C
printf( "n Introduzca el
primer número (entero): " );
un programador escribe:
prrintf( "n Introduzca el
primer número (entero): " );
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
Código correcto
>>> 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.
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
Ejemplo Área de un cuadrado
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.
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 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 en Python
y=0
x=10/y
print 'esta línea nunca se ejecuta'
Utilizando excepciones podemos capturar
el error y continuar la ejecución del
programa:
y=0
try:
x=10/y
except ZeroDivisionError:
print 'No existe la división por cero‘
print 'Esta línea si se ejecuta'
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 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 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):
Excepciones 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.");
}
}
Excepciones 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).
Excepciones 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];
// ...
}
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.
l
http://www.google.co.ve/imgres?imgurl=http://image.slidesharecdn.co
m/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=O4IgVeCQM4GTs
AXYrYGQDA&tbm=isch&ved=0CB0QMygDMAM
Errores
Errores

Errores

  • 1.
    Universidad de oriente Núcleode 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
  • 2.
    • Introducción • Tiposde 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
  • 3.
  • 4.
    Tipos de Errores Errorde Sintaxis Error Semántico Error de Ejecución
  • 5.
    Error de Sintaxis Sondetectados 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.
  • 6.
  • 7.
    Ejemplo en lenguajeC printf( "n Introduzca el primer número (entero): " ); un programador escribe: prrintf( "n Introduzca el primer número (entero): " );
  • 8.
    Creemos un proyectollamado 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
  • 9.
  • 10.
    >>> while Trueprint('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.
  • 11.
    Nos permite identificarmuchas premisas que evaluamos y llevamos a cabo a su debida formulación para así poder tomar una decisión. Errores lógicos
  • 12.
    Ejemplo Área deun cuadrado
  • 13.
    Errores de ejecución Unerror 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.
  • 14.
    Manejo de excepciones Parael 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.
  • 15.
    Excepciones en Python Enel 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.
  • 16.
    Excepciones en Python y=0 x=10/y print'esta línea nunca se ejecuta' Utilizando excepciones podemos capturar el error y continuar la ejecución del programa: y=0 try: x=10/y except ZeroDivisionError: print 'No existe la división por cero‘ print 'Esta línea si se ejecuta'
  • 17.
    Excepciones en Python lista1=['Keyla','Argenis','Ronald'] try: printlista1[5] except IndexError: print 'Intenta acceder a un elemento no existente a la lista'
  • 18.
    Excepciones en Java Todaslas 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..
  • 19.
    Excepciones en Java Ellenguaje 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):
  • 20.
    Excepciones Checked Una excepciónde 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."); } }
  • 21.
    Excepciones Checked Una excepciónde 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).
  • 22.
    Excepciones Checked Esto esclaramente 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]; // ... }
  • 24.
    Podemos calcular sila 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.
  • 25.