1. 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
2. • 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
5. 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.
7. Ejemplo en lenguaje C
printf( "n Introduzca el
primer número (entero): " );
un programador escribe:
prrintf( "n Introduzca el
primer número (entero): " );
8. 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
10. >>> 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.
11. 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
13. 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.
14. 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.
15. 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.
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'
18. 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..
19. 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):
20. 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.");
}
}
21. 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).
22. 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];
// ...
}
23.
24. 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.