Cargando



Python - Excepciones

En este tutorial veremos como Python implementa formas, funciones y métodos nativos para poder controlar las excepciones de forma que nuestros programas sean más robustos, menos propensos a cierres inesperados y más seguros con los datos que pudiéramos estar manejando.


oct 21 2013 18:27
Profesional
oct 21 2013 19:42
Cuando estamos realizando un programa muchas veces existen situaciones en las cuales un usuario puede detonar un comportamiento no ordinario de nuestro algoritmo, sobre todo cuando dependemos de la entrada de datos por parte de dicho usuario, para ello muchos lenguajes de programación implementan las excepciones como un mecanismo para evitar que nuestro programa explote y falle generando una situación peor pudiendo exponer datos sensibles al público.

¿Qué es una excepción?

En Python una excepción es un objeto que de no ser manejado de alguna forma da pie a que se termine el programa y muestre un traceback del error que originó dicha excepción, un ejemplo de cómo luce una excepción en un programa de Python lo podemos ver en la siguiente captura de pantalla:

Python_Excepciones1.jpg


A pesar que esta excepción es una ejemplo muy básico nos da un trasfondo teórico bastante importante, este nos indica que es una instancia de alguna clase y estas instancias pueden ser generadas y capturadas de diversas formas, permitiendo capturar el error y hacer algo dentro del flujo del programa evitando así su finalización abrupta con lo cual nuestro programa sería mucho más estable.

Levantando una excepción

Como pudimos ver en los párrafos anteriores las excepciones se levantan automáticamente para muchos casos, sin embargo estas también las podemos levantar nosotros para obtener mayor control del programa.

Para levantar una excepción utilizamos el comando raise que lleva como argumento ya sea una clase o un objeto, cuando utilizamos una clase, una instancia de esta es generada automáticamente, inclusive podemos utilizar un argumento tipo string luego de la clase separado por una coma.

Veamos algunos ejemplos utilizando la clase incluida en Python denominada Exception :

Con este código podemos levantar una excepción:

>>> raise Exception
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
 Exception


Sencillamente llamamos a raise y le pasamos la clase Exception, como vemos no es nada complicado veamos unos códigos más.

>>> raise Exception, 'hyperdrive overload'
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
Exception: hyperdrive overload


En estos dos casos adicionales le pasamos un parámetro adicional de tipo string, como vemos lo podemos hacer ya sea haciendo la separación con una coma o como argumento de la clase.

Veamos un listado de algunas de las excepciones que vienen por defecto en Python:
  • Exception: La clase root para todas las excepciones.
  • AtributeError: Levantada cuando una referencia o asignación de atributos falla.
  • IOError: Levantada cuando se trata de abrir un archivo que no existe.
  • IndexError: Levantada cuando se usa un índice o secuencia inexistente.
  • KeyError: Levantada cuando se mapea una llave inexistente.
  • NameError: Levantada cuando el nombre de una variable no es encontrada.
  • SyntaxError: Levantada cuando el código está mal formado.
  • TypeError: Levantada cuando una operación o función es aplicada a un objeto del tipo incorrecto.
  • ValueError: Igual que el caso anterior pero en vez de aplicar al tipo, aplica al valor del objeto.
  • ZeroDivisionerror: Levantada cuando el segundo argumento de una división es cero.
Crear nuestras excepciones

A pesar que las excepciones que vienen dentro de Python ya cubren un terreno extenso en las funcionalidades que podamos necesitar, hay veces en que simplemente debemos crear nuestras propias excepciones para cumplir con nuestros programas, veamos un ejemplo:

class SomeCustomException(Exception): pass


Simplemente creamos una clase como cualquier otra y entonces heredamos de la clase Exception para de esta forma crear nuestra excepción personalizada.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X