¿Qué es una excepción en Python?
Una excepción es un error que ocurre en el momento de la ejecución de un programa. Sin embargo, mientras ejecuta un programa, Python genera una excepción que debe manejarse para evitar que su programa se bloquee. En el lenguaje Python, 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 su función de llamada. Eventualmente, cuando se arroja una excepción de la función principal, el programa se termina abruptamente.
En este tutorial de manejo excepcional de Python, aprenderá:
- ¿Qué es una excepción en Python?
- Ejemplos comunes de excepción
- ¿Por qué debería utilizar Excepciones?
- Reglas de excepciones
- Mecanismo de manipulación excepcional
- La declaración de prueba
- La declaración de captura
- La declaración de aumento
- Errores importantes de Python
- Otras excepciones importantes de Python
- Error frente a excepciones
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 de la cantidad 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 objeto Python 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.
- En Python, puede generar una excepción en el programa utilizando el método de aumento de excepción.
- Generar una excepción le ayuda a interrumpir la ejecución del código actual y devuelve la excepción a la expectativa hasta que se maneja.
- Procesamiento de excepciones para componentes que no pueden manejarlos directamente.
Reglas de excepciones
Aquí hay algunas reglas esenciales para el manejo de excepciones de Python:
- Las excepciones deben ser objetos de clase
- Para las excepciones de clase, puede usar la declaración try con una cláusula except que menciona 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 incondicionalmente fatales.
Mecanismo de manipulación excepcional
El manejo de excepciones se gestiona mediante las siguientes 5 palabras clave:
- tratar
- captura
- finalmente
- lanzar
La declaración de prueba
Una declaración try 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 instrucción try, si no se produjeron excepciones, el intérprete ignora los controladores de excepciones para esa instrucción try específica.
En caso de que se produzca alguna excepción en una suite de prueba, la suite de prueba expira y el control del programa se transfiere al manejador de excepción que coincide después de la suite de prueba.
Syntax:try:statement(s)
La declaración de captura
Los bloques de captura toman un argumento a la vez, que es el tipo de excepción que es probable que detecte. 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 de captura utilizando la palabra clave captura
- El parámetro Catch Exception siempre está entre paréntesis
- Siempre representa el tipo de excepción que captura los identificadores de bloque.
- Un código de manejo de excepciones se escribe entre dos {} llaves.
- Puede colocar varios bloques de captura dentro de un solo bloque de prueba.
- Puede usar un bloque catch solo después del bloque try.
- Todo el bloque de captura debe ordenarse de subclase a excepción de superclase.
Ejemplo:
try}catch (ArrayIndexOutOfBoundsException e) {System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) {System.err.printin("Caught second " + e.getMessage());}
Finalmente bloquear
Finalmente, el bloque siempre se ejecuta independientemente de que se lance 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 ejecutadas en todas las condiciones.
try:raise KeyboardInterruptfinally:print 'welcome, world!'OutputWelcome, world!KeyboardInterrupt
Finalmente, la cláusula se ejecuta antes de la instrucción try.
La declaración de aumento
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:
Una excepción de Python puede ser cualquier valor, como una cadena, una clase, un número o un objeto. La mayoría de estas excepciones que genera el núcleo de Python son clases con un argumento que es una instancia de la clase.
Errores importantes de Python
Tipo de error | Descripción |
ArithmeticError | ArithmeticError actúa como una clase base para todas las excepciones aritméticas. Se genera por errores en operaciones aritméticas. |
ImportError | ImportError se genera cuando intenta importar un módulo que no está presente. Este tipo de excepción ocurre si ha cometido un error de escritura en el nombre del módulo o en el módulo que no está presente en la ruta estándar. |
IndexError | Se genera un IndexError cuando intenta hacer referencia a una secuencia que está fuera de rango. |
KeyError | Cuando no se encuentra una clave específica en un diccionario, se genera una excepción KeyError. |
NameError | Un NameError se genera cuando se hace referencia a un nombre en un código que nunca existe en el espacio de nombres local o global. |
ValueError | El error de valor se genera cuando una función u operación incorporada recibe un argumento que puede ser del tipo correcto pero no tiene un 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. |
ZeroDivisonError | Este tipo de error surge cuando se produce una 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 | SyntaxErrors que se generan cuando hay un error en la sintaxis de Python. |
IndentationError | Este error surge cuando la sangría no está definida correctamente |
Otras excepciones importantes de Python
Excepción | Descripción |
ArithmeticException | Error aritmético, como dividir por cero. |
ArraylndexOutOfBoundsException | El índice de matriz está fuera de los límites. |
ArrayStoreException | La asignación le ayuda al elemento de matriz de un tipo incompatible. |
ClassCastException | 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 un estado incorrecto. |
ClassNotFoundException | Clase no encontrada. |
CloneNotSupportedException | Intente clonar un objeto que no implementa la interfaz Cloneable. |
Excepción de acceso ilegal | Se niega el acceso a una clase. |
InstantiationException | Ocurre cuando intenta crear un objeto de una interfaz o clase abstracta. |
CloneNotSupportedException | Intente clonar un objeto que no implementa la interfaz. |
Error frente a excepciones
Error | Excepciones |
Todos los errores en Python son del tipo no seleccionado. | 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. |
Los errores son causados principalmente por el entorno en el que se ejecuta una aplicación. | La propia aplicación provoca excepciones. |
Ejemplos: OutofMemoryError | Ejemplos: excepciones marcadas, excepción SQL, NullPointerException, etc. |
Resumen
- Una excepción es un error que ocurrió durante la ejecución de un programa.
- La excepción indica que, aunque el evento puede ocurrir, este tipo de evento ocurre con poca frecuencia.
- Ejemplos comunes de excepción son 1) División por cero, 2) Acceder a un archivo que no existe, 3) Adición de dos tipos incompatibles.
- Una excepción es un objeto Python que representa un error.
- Una declaración try 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.
- Los bloques de captura toman un argumento a la vez, que es el tipo de excepción que es probable que detecte.
- La declaración de aumento especifica un argumento que inicializa el objeto de excepción.
- Finalmente, block siempre se ejecuta independientemente de que se lance o no una excepción.