Python Manejo de excepciones: try, except, finally, raise
โก Resumen inteligente
Python El manejo de excepciones permite que tu programa responda a errores en tiempo de ejecuciรณn en lugar de bloquearse. Aquรญ aprenderรกs cรณmo funcionan try, except, finally y raise, por quรฉ son importantes las excepciones y los tipos de errores integrados mรกs comunes que encontrarรกs.

ยฟQuรฉ es el manejo de excepciones en Python?
Una excepciรณn es un error que ocurre en el momento de la ejecuciรณn de un programa. Sin embargo, mientras se ejecuta un programa, Python genera una excepciรณn que debe manejarse para evitar que su programa falle. En Python lenguaje, las excepciones se activan automรกticamente en caso de errores, o pueden ser activadas e interceptadas por su cรณdigo.
La excepciรณn indica que, aunque el evento puede ocurrir, este tipo de evento ocurre con poca frecuencia. Cuando el mรฉtodo no puede manejar la excepciรณn, se lanza a la funciรณn que lo llama. Finalmente, cuando se produce una excepciรณn en la funciรณn principal, el programa finaliza abruptamente.
Ejemplos comunes de excepciรณn
- Divisiรณn por cero
- Accediendo a un archivo que no existe.
- Adiciรณn de dos tipos incompatibles.
- Intentando acceder a un รญndice inexistente de una secuencia
- Eliminando la tabla del servidor de base de datos desconectado.
- Retiro en cajero automรกtico de mรกs del monto disponible
ยฟPor quรฉ deberรญa utilizar excepciones?
Estas son las razones para usar excepciones en Python:
- El manejo de excepciones le permite separar el cรณdigo de manejo de errores del cรณdigo normal.
- Una excepciรณn es un Python objeto lo que representa un error.
- Al igual que con los comentarios de cรณdigo, las excepciones le ayudan a recordar lo que espera el programa.
- Aclara el cรณdigo y mejora la legibilidad.
- Le permite estimular las consecuencias ya que el manejo de errores se lleva a cabo en un lugar y de una manera.
- Una excepciรณn es un mรฉtodo conveniente para manejar mensajes de error.
- In Python, puede generar una excepciรณn en el programa utilizando el mรฉtodo de generar excepciรณn.
- Generar una excepciรณn le ayuda a interrumpir la ejecuciรณn del cรณdigo actual y devuelve la excepciรณn a las expectativas hasta que se maneja.
- Procesamiento de excepciones para componentes que no pueden manejarlas directamente.
Reglas de excepciones
Aquรญ hay algunas reglas esenciales de Python manejo de excepciones:
- Las excepciones deben ser objetos de clase.
- Para excepciones de clase, puede utilizar la declaraciรณn try con una clรกusula de excepciรณn que mencione una clase en particular.
- Incluso si una declaraciรณn o expresiรณn es sintรกcticamente correcta, puede mostrar un error cuando se intenta ejecutarla.
- Los errores encontrados durante la ejecuciรณn se denominan excepciones y no son necesariamente fatales.
Python Mecanismo de manejo de excepciones
El manejo de excepciones se gestiona mediante las siguientes 5 palabras clave:
- try
- catch
- finalmente
- lanzar
Python Declaraciรณn de prueba
Una declaraciรณn de prueba incluye la palabra clave try, seguida de dos puntos (:) y un conjunto de cรณdigo en el que pueden ocurrir excepciones. Tiene una o mรกs clรกusulas.
Durante la ejecuciรณn de la declaraciรณn try, si no se produjeron excepciones, el intรฉrprete ignora los controladores de excepciones para esa declaraciรณn try especรญfica.
En caso de que ocurra alguna excepciรณn en un conjunto de pruebas, el conjunto de pruebas expira y el control del programa se transfiere al controlador de excepciรณn correspondiente que sigue al conjunto de pruebas.
Syntax:
try:
statement(s)
La declaraciรณn de captura
Los bloques catch toman un argumento a la vez, que es el tipo de excepciรณn que es probable que detecten. Estos argumentos pueden variar desde un tipo especรญfico de excepciรณn que puede variar hasta una categorรญa general de excepciones.
Reglas para el bloque de captura:
- Puede definir un bloque catch utilizando la palabra clave catch
- El parรกmetro Catch Exception siempre estรก entre parรฉntesis
- Siempre representa el tipo de excepciรณn que maneja el bloque catch.
- Se escribe un cรณdigo de manejo de excepciones entre dos llaves {}.
- Puede colocar varios bloques catch dentro de un solo bloque try.
- Puedes usar un bloque catch solo despuรฉs del bloque try.
- Todo el bloque catch debe ordenarse desde la excepciรณn de subclase a superclase.
Ejemplo:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
Declaraciรณn final en Python
El bloque finalmente siempre se ejecuta independientemente de si se lanza o no una excepciรณn. La palabra clave final le permite crear un bloque de cรณdigo que sigue a un bloque try-catch.
Finalmente, la clรกusula es opcional. Se pretende definir acciones de limpieza que deben ser las que se ejecuten en todas las condiciones.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
Finalmente, la clรกusula se ejecuta antes de la declaraciรณn try.
Levantar declaraciรณn en Python
La declaraciรณn de aumento especifica un argumento que inicializa el objeto de excepciรณn. Aquรญ, una coma sigue al nombre de la excepciรณn y el argumento o tupla del argumento que sigue a la coma.
Sintaxis:
raise [Exception [, args [, traceback]]]
En esta sintaxis, el argumento es opcional y, en el momento de la ejecuciรณn, el valor del argumento de excepciรณn siempre es ninguno.
Ejemplo:
A Python La excepciรณn puede ser cualquier valor como una cadena, una clase, un nรบmero o un objeto. La mayorรญa de estas excepciones planteadas por Python core son clases con un argumento que es una instancia de la clase.
Importante Python Errores
| Tipo de error | Mareas Ideales para Lecciones |
|---|---|
| Error aritmรฉtico | ArithmeticError actรบa como clase base para todas las excepciones aritmรฉticas. Se plantea por errores en operaciones aritmรฉticas. |
| Error de importaciรณn | ImportError se genera cuando intentas importar un mรณdulo que no estรก presente. Este tipo de excepciรณn ocurre si has hecho typing Error en el nombre del mรณdulo o el mรณdulo no estรก presente en la ruta estรกndar. |
| Error de รญndice | Se genera un IndexErroris cuando intenta hacer referencia a una secuencia que estรก fuera de rango. |
| Error de clave | Cuando una clave especรญfica no se encuentra en un diccionario, se genera una excepciรณn KeyError. |
| Error de nombre | Se genera un NameError cuando se hace referencia a un nombre en un cรณdigo que nunca existe en el espacio de nombres local o global. |
| ValorError | El error de valor se genera cuando una funciรณn u operaciรณn integrada recibe un argumento que puede ser del tipo correcto pero que no tiene el valor adecuado. |
| EOFerror | Este tipo de error surge cuando una de las funciones integradas (input() o raw_input()) alcanza una condiciรณn EOF sin leer ningรบn dato. |
| ErrorDivisiรณnCero | Este tipo de error surge cuando se realiza la divisiรณn o mรณdulo por cero para todos los tipos numรฉricos. |
| IOError- | Este tipo de error surge cuando falla una operaciรณn de entrada/salida. |
| error de sintaxis | Errores de sintaxis generados cuando hay un error en Python sintaxis. |
| Error de sangrรญa | Este error surge cuando la sangrรญa no estรก definida correctamente |
Otro importante Python Excepciones
| Excepciรณn | Mareas Ideales para Lecciones |
|---|---|
| excepciรณn aritmรฉtica | Error aritmรฉtico, como divisiรณn por cero. |
| ArraylndexOutOfBoundsExcepciรณn | El รญndice de matriz estรก fuera de los lรญmites. |
| ArrayStoreExcepciรณn | La asignaciรณn le ayuda a identificar el elemento de matriz de un tipo incompatible. |
| Excepciรณn ClassCast | Reparto no vรกlido |
| MlegalMonitorStateException | Operaciรณn ilegal del monitor, como esperar en un hilo desbloqueado. |
| MlegalStateException | El entorno o la aplicaciรณn estรกn en estado incorrecto. |
| Excepciรณn de clase no encontrada | Clase no encontrada. |
| ClonNotSupportedException | Intente clonar un objeto que no implemente la interfaz Cloneable. |
| Excepciรณn de acceso ilegal | Se deniega el acceso a una clase. |
| InstanciaciรณnExcepciรณn | Ocurre cuando intentas crear un objeto de una interfaz o abs.tracclase t. |
| ClonNotSupportedException | Intente clonar un objeto que no implemente la interfaz. |
Error versus excepciones
| Error | Excepciones |
|---|---|
| Todos los errores en Python son del tipo no marcado. | Las excepciones incluyen tanto el tipo marcado como el no marcado. |
| Se producen errores en tiempo de ejecuciรณn que el compilador desconoce. | Las excepciones se pueden recuperar manejรกndolas con la ayuda de bloques try-catch. |
| La mayorรญa de los errores son causados โโpor el entorno en el que se ejecuta una aplicaciรณn. | La propia aplicaciรณn provoca excepciones. |
| Ejemplos: Error de memoria insuficiente |
Ejemplos: Excepciones marcadas, excepciรณn SQL, NullPointerException, etc. |
