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: Una excepciรณn es un error de tiempo de ejecuciรณn que Python Se produce cuando algo sale mal.
  • ๐Ÿ›ก๏ธ intentar / excepto: Un bloque try ejecuta cรณdigo arriesgado; except captura y maneja la excepciรณn.
  • ๐Ÿงน finalmente: Un bloque finally siempre se ejecuta, independientemente de si se produjo una excepciรณn o no.
  • ๐Ÿš€ aumentar: La instrucciรณn raise permite provocar una excepciรณn a propรณsito.
  • ๐Ÿ“‹ Tipos de error: Las excepciones comunes incluyen ValueError, KeyError, IndexError y ZeroDivisionError.
  • ๐Ÿค– Ayuda de IA: Las herramientas de IA como Copilot generan bloques try-except y sugieren tipos de error.

Python Manejo de excepciones

ยฟ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:

  1. try
  2. catch
  3. finalmente
  4. 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.

Preguntas Frecuentes

El manejo de excepciones es el proceso de responder a los errores en tiempo de ejecuciรณn para que su programa no falle. Python Utiliza bloques try y except para capturar excepciones y ejecutar cรณdigo de recuperaciรณn en su lugar.

Code que podrรญa fallar va dentro de un bloque try. Si ocurre una excepciรณn, Python Salta al bloque except correspondiente, que maneja el error y permite que el programa continรบe.

Un bloque finally se ejecuta independientemente de si se ha producido una excepciรณn o no, por lo que es ideal para tareas de limpieza como cerrar archivos o liberar recursos que siempre deben realizarse.

La instrucciรณn raise genera una excepciรณn intencionadamente. Puede generar una excepciรณn integrada, como ValueError, o una personalizada, para indicar que se ha producido un error.

Los errores, como un SyntaxError, generalmente no se pueden solucionar y detienen el programa. Las excepciones son eventos de tiempo de ejecuciรณn que se pueden capturar y manejar con bloques try y except.

Los asistentes de IA como GitHub Copilot autocompletan los bloques try-except, sugieren el tipo de excepciรณn adecuado para capturar y generan cรณdigo de limpieza final a partir de una breve descripciรณn de la lรณgica.

Sรญ. Las herramientas impulsadas por IA pueden automatizar el embalaje.ping Evite el cรณdigo arriesgado en los bloques try-except; recomiende el uso de excepciones especรญficas en lugar de simples except y agregue registros para que los fallos sean mรกs fรกciles de depurar.

Las excepciones integradas mรกs comunes incluyen ValueError, TypeError, KeyError, IndexError, ImportError, NameError y ZeroDivisionError. Cada una indica un tipo especรญfico de problema de ejecuciรณn en el cรณdigo.

Resumir este post con: