Temas > Programacion > Python > Excepciones en python
Julio

Las excepciones son errores detectados por Python durante la ejecución
del programa. Cuando el intérprete se encuentra con una
situación excepcional, como el intentar dividir un número entre 0 o
el intentar acceder a un archivo que no existe, este genera o lanza una
excepción, informando al usuario de que existe algún problema.
Si la excepción no se captura el flujo de ejecución se interrumpe y se
muestra la información asociada a la excepción en la consola de forma
que el programador pueda solucionar el problema.
Veamos un pequeño programa que lanzaría una excepción al intentar
dividir 1 entre 0.
    def division(a, b):
         return a / b
    def calcular():
         division(1, 0)
    calcular()
Si lo ejecutamos obtendremos el siguiente mensaje de error:
    $ python ejemplo.py
    Traceback (most recent call last):
    File â??ejemplo.py", line 7, in
    calcular()
    File â??ejemplo.py", line 5, in calcular
    division(1, 0)
    File â??ejemplo.py", line 2, in division
    a / b
    ZeroDivisionError: integer division or modulo by zero
Lo primero que se muestra es el trazado de pila o traceback, que consiste
 en una lista con las llamadas que provocaron la excepción. Como
vemos en el trazado de pila, el error estuvo causado por la llamada a
calcular() de la línea 7, que a su vez llama a division(1, 0) en la
línea 5 y en última instancia por la ejecución de la sentencia a / b de
la línea 2 de division.
A continuación vemos el tipo de la excepción, ZeroDivionError, junto
a una descripción del error: â??integer division or modulo by zero"
(módulo
 o división entera entre cero).
En Python se utiliza una construcción try-except para capturar y
tratar las excepciones. El bloque try (intentar) define el fragmento de
código en el que creemos que podría producirse una excepción. El bloque
except (excepción) permite indicar el tratamiento que se llevará a
cabo de producirse dicha excepción. Muchas veces nuestro tratamiento
de la excepción consistirá simplemente en imprimir un mensaje más
amigable para el usuario, otras veces nos interesará registrar los
errores
y de vez en cuando podremos establecer una estrategia de resolución
del problema.
En el siguiente ejemplo intentamos crear un objeto f de tipo fichero.
De no existir el archivo pasado como parámetro, se lanza una excepción de
tipo IOError, que capturamos gracias a nuestro try-except.
    try:
         f = file(â??archivo.txt")
    except:
         print â??El archivo no existe"
Python permite utilizar varios except para un solo bloque try, de
forma que podamos dar un tratamiento distinto a la excepción dependiendo
 del tipo de excepción de la que se trate. Esto es una buena
práctica, y es tan sencillo como indicar el nombre del tipo a
continuación
 del except.
    try:
         num = int(â??3a")
         print no_existe
    except NameError:
         print â??La variable no existe"
    except ValueError:
         print â??El valor no es un numero"
         def __str__(self):
             return â??Error â?? + str(self.valor)
    try:
         if resultado > 20:
             raise MiError(33)
    except MiError, e:
         print e
Por último, a continuación se listan a modo de referencia las
excepciones
 disponibles por defecto, así como la clase de la que deriva cada una
de ellas entre paréntesis.
BaseException:   Clase de la que heredan todas las excepciones.
Exception(BaseException):     Super clase de todas las excepciones que
no sean de salida.
GeneratorExit(Exception):     Se pide que se salga de un generador.
StandarError(Exception):     Clase base para todas las excepciones que
no tengan que ver con salir del intérprete.
ArithmeticError(StandardError):     Clase base para los errores
aritméticos.

FloatingPointError(ArithmeticError):      Error en una operación de
coma flotante.
OverflowError(ArithmeticError):     Resultado demasiado grande para
poder representarse.
ZeroDivisionError(ArithmeticError):      Lanzada cuando el segundo
argumento de una operación de división o módulo era 0.
AssertionError(StandardError):     Falló la condición de un estamento
assert.
AttributeError(StandardError):     No se encontró el atributo.













¿Has olviado tu contraseña?

Pulsa aquí para registrate




Google






LunMarMieJueVieSabDom
    123
45678910
11121314151617
181920 21222324
252627282930 

Jueves 21 de Noviembre 2024
Semana 47

..............................................................................................................................................................................................................................................
(Contacto)..
Esta web utiliza cookies para obtener datos estadísticos de la navegación de sus usuarios. Política de privacidad y Aviso legal