Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Dominando el manejo de excepciones en Python: try, except, finally y raise efectivamente

Dominando el manejo de excepciones en Python: try, except, finally y raise efectivamente

¿Qué es el manejo de excepciones en Python?

Una excepción es un error que ocurre durante la ejecución de un programa. Sin embargo, mientras se ejecuta un programa, Python genera una excepción que debe manejarse para evitar que tu programa se bloquee. En Python, las excepciones se disparan automáticamente ante errores, o pueden ser lanzadas e interceptadas por tu código.

La excepción indica que, aunque el evento puede ocurrir, este tipo de evento sucede con poca frecuencia. Cuando el método no puede manejar la excepción, esta se lanza a su función llamadora. Eventualmente, cuando una excepción sale de la función principal, el programa termina abruptamente.

En este tutorial de manejo de excepciones en Python, aprenderás:

Ejemplos comunes de excepciones:

Por qué deberías usar excepciones

Razones para usar excepciones en Python:

Reglas de las excepciones

Reglas esenciales del manejo de excepciones en Python:

Mecanismo de manejo de excepciones en Python

El manejo de excepciones se gestiona mediante las siguientes 5 palabras clave:

  1. try
  2. except
  3. finally
  4. raise

Sentencia try en Python

Una sentencia try incluye la palabra clave try, seguida de dos puntos (:) y un bloque de código en el que pueden ocurrir excepciones. Tiene una o más cláusulas.

Durante la ejecución de la sentencia try, si no ocurren excepciones, el intérprete ignora los manejadores de excepción para esa sentencia try específica.

En caso de que ocurra alguna excepción en un bloque try, el bloque try expira y el control del programa se transfiere al manejador except coincidente que sigue al bloque try.

Sintaxis:
try:
    sentencia(s)

La sentencia except

Los bloques except toman un argumento a la vez, que es el tipo de excepción que es probable que capturen. Estos argumentos pueden variar desde un tipo específico de excepción hasta una categoría general de excepciones.

Reglas para el bloque except:

Ejemplo:

try:
    # código que puede fallar
except ArrayIndexOutOfBoundsException as e:
    print("Capturado primero " + str(e))
except IOException as e:
    print("Capturado segundo " + str(e))

Sentencia finally en Python

El bloque finally siempre se ejecuta independientemente de si se lanzó una excepción o no. La palabra clave finally te permite crear un bloque de código que sigue a un bloque try-except.

La cláusula finally es opcional. Está destinada a definir acciones de limpieza que deben ejecutarse en todas las condiciones.

try:
    raise KeyboardInterrupt
finally:
    print('¡Bienvenido, mundo!')
# Salida:
# Welcome, world!
# KeyboardInterrupt

La cláusula finally se ejecuta antes de la sentencia try.

Sentencia raise en Python

La sentencia raise especifica un argumento que inicializa el objeto excepción. Aquí, una coma sigue al nombre de la excepción, y el argumento o tupla de argumentos que sigue a la coma.

Sintaxis:

raise [Excepcion [, 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 none.

Ejemplo:

Una excepción de Python puede ser cualquier valor como una cadena, clase, número u objeto. La mayoría de estas excepciones lanzadas por el núcleo de Python son clases con un argumento que es una instancia de la clase.

Errores importantes de Python

Tipo de ErrorDescripción
ArithmeticErrorClase base para todas las excepciones aritméticas. Se lanza por errores en operaciones aritméticas.
ImportErrorSe lanza al intentar importar un módulo que no está presente. Ocurre si hay error tipográfico en el nombre del módulo o el módulo no está en la ruta estándar.
IndexErrorSe lanza al intentar referenciar una secuencia fuera de rango.
KeyErrorCuando una clave específica no se encuentra en un diccionario, se lanza KeyError.
NameErrorSe lanza cuando un nombre se refiere en código pero nunca existe en el espacio de nombres local o global.
ValueErrorSe lanza cuando una función u operación integrada recibe un argumento de tipo correcto pero valor inadecuado.
EOFErrorSe lanza cuando una de las funciones integradas (input() o raw_input()) alcanza condición EOF sin leer datos.
ZeroDivisionErrorSe lanza cuando división o módulo por cero ocurre para todos los tipos numéricos.
IOErrorSe lanza cuando una operación de entrada/salida falla.
SyntaxErrorSe lanza cuando hay un error en la sintaxis de Python.
IndentationErrorSe lanza cuando la indentación no está correctamente definida.

Otras excepciones importantes de Python

ExcepciónDescripción
ArithmeticExceptionError aritmético, como división por cero.
ArrayIndexOutOfBoundsExceptionÍndice de array fuera de límites.
ArrayStoreExceptionAsignación a elemento de array de tipo incompatible.
ClassCastExceptionCast inválido
IllegalMonitorStateExceptionOperación de monitor ilegal, como esperar en hilo sin bloqueo.
IllegalStateExceptionEntorno o aplicación en estado incorrecto.
ClassNotFoundExceptionClase no encontrada.
CloneNotSupportedExceptionIntento de clonar objeto que no implementa interfaz Cloneable.
IllegalAccessExceptionAcceso a clase denegado.
InstantiationExceptionOcurre al intentar crear objeto de interfaz o clase abstracta.
CloneNotSupportedExceptionIntento de clonar objeto que no implementa la interfaz.

Error vs. Excepciones

ErrorExcepciones
Todos los errores en Python son del tipo unchecked.Las excepciones incluyen tanto checked como unchecked.
Los errores ocurren en tiempo de ejecución, desconocidos para el compilador.Las excepciones pueden recuperarse manejándolas con bloques try-catch.
Los errores son causados principalmente por el entorno donde se ejecuta la aplicación.La aplicación misma causa las excepciones.
Ejemplos: OutOfMemoryErrorEjemplos: Excepciones checked, SQL exception, NullPointerException, etc.

Resumen

python

  1. Manejo de excepciones en C++: Guía práctica con try, catch, throw
  2. Dominando tipos de datos en Python: Guía práctica
  3. Dominando operadores en Python: Guía completa
  4. Dominando la sentencia pass en Python: Guía práctica
  5. Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
  6. Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
  7. Dominando el Manejo de Excepciones en Python: try, except, else y finally Explicados
  8. Dominando Iteradores en Python: Cómo Funcionan y Cómo Crear los Tuyos
  9. Explicación de Closures en Python: Cómo las Funciones Anidadas Capturan Variables
  10. Dominando el manejo de excepciones en Java: Try, Catch, Finally, Throw y Throws explicados
  11. Dominando el manejo de excepciones en Java: Try, Catch, Finally y Recursos