Excepción de Python

Excepción de Python

Una excepción es un evento que surge durante la ejecución de un programa para terminar o cambiar el flujo normal de un programa. Un error, por ejemplo, plantea una excepción. Al igual que otros lenguajes de programación, Python contiene muchas excepciones incorporadas. Estas excepciones se plantean si se encuentra un error cuando se ejecuta el programa. El tipo de error determina qué excepción se debe elevar. Cuando se produce una excepción, el intérprete de Python verifica si la excepción se maneja; Si no, termina el programa. Este artículo explica las excepciones en Python a través de varios ejemplos.

Excepciones de Python incorporadas

Como se discutió anteriormente, Python tiene muchas excepciones incorporadas que se plantean cuando ocurre un error durante la ejecución de un programa. Cada excepción se deriva de una clase base de "excepción". Lo siguiente incluye algunas excepciones de Python incorporadas, junto con una breve descripción de cada tipo de excepción:

Excepción Descripción
Excepción Cada excepción se deriva de esta clase.
Importador Esta excepción se plantea cuando se importa un módulo específico y no se encuentra.
Eoferror Esta es la excepción de fin de archivo. Esta excepción ocurre cuando se alcanza el final del archivo.
ZeroDivisionError Esta excepción se plantea cuando un número se divide por cero.
Keyerer Esta excepción se plantea si se especifica o usa una cierta clave que no se define dentro de un diccionario.
Índice Esta excepción se eleva cuando se ha intentado el acceso a un índice de secuencia que no está en el rango.
Flotante Esta excepción se plantea cuando fallas una operación de punto flotante.

Estas son algunas de las excepciones incorporadas en Python. Visite la documentación oficial para obtener más información sobre el uso de excepciones incorporadas en Python, ubicada en https: // docs.pitón.org/3/biblioteca/excepciones.html.

Uso de excepción en Python

Las excepciones en Python se manejan utilizando la declaración de prueba. El código que puede lanzar o plantear una excepción se implementa en un bloque de try. Al lado del bloque de try, se implementa un bloque excepto para manejar la excepción. En el bloque excepto, captamos la excepción y decidimos qué operación realizar cuando encontramos esa excepción particular. La sintaxis de escribir el intento y, excepto los bloques, es el siguiente:

intentar:
realizar la operación o función
excepto:
funcionalidad para manejar la excepción

Ahora, implementaremos un código simple en nuestro script de Python utilizando el try y excepto los bloques.

Aquí, imprimiremos una variable de 'nombre' que no está definida. Esto plantea una excepción en el bloque excepto.

#Implementar el bloque de try
intentar:
Imprimir (nombre)
#Implementar el bloque excepto
excepto:
Imprimir ("Ocurrió una excepción")

Producción

Si no se produce excepción, solo se ejecuta el bloque de try. En el bloque excepto, se imprime una declaración de que se ha producido una excepción.

Veamos otro ejemplo en el que definimos la variable de nombre:

#Definiendo la variable de nombre
nombre = "Marca"
#Implementar el bloque de try
intentar:
Imprimir (nombre)
#Implementar el bloque excepto
excepto:
Imprimir ("Ocurrió una excepción")

Producción

En el ejemplo anterior, el bloque de try se ejecuta y el bloque excepto se omite porque el programa no plantea ninguna excepción. Podemos definir tantos excepto bloques en nuestro programa como queramos. Cada excepto bloque maneja un tipo específico de excepción.

#Implementar el bloque de try
intentar:
Imprimir (nombre)
#Implementar el bloque excepto para captar el error del nombre
Excepto NameError:
imprimir ("La variable no está definida")
#Implementar el bloque excepto
excepto:
Imprimir ("Algo salió mal aparte del error de nombre")

Producción

En Python, la excepción es la clase base para todas las excepciones. En lugar de escribir el nombre de una excepción particular en el bloque excepto, simplemente podemos escribir "excepción" y atrapar cada tipo de excepción de esta manera.

#Implementar el bloque de try
intentar:
Imprimir (nombre)
#Implementar el bloque excepto para captar el error
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementar el bloque excepto
excepto:
Imprimir ("Algo salió mal aparte del error de nombre")

Producción

El exp.__class__ Devuelve el nombre de la clase de excepción.

Del mismo modo, veamos un ejemplo de la clase "ZeroDivisionError".

#Implementar el bloque de try
intentar:
x = 1/0
Imprimir (x)
#Implementar el bloque excepto para captar el error
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementar el bloque excepto
excepto:
Imprimir ("Algo salió mal aparte del error de nombre")

Producción

El bloque delse

El bloque de lose se usa con los bloques de intento y de excepción. El bloque delse define un código que se ejecuta si el bloque de try se ejecuta correctamente y no se produce ningún error. A veces, es posible que deba imprimir un mensaje o realizar una función cuando el bloque de try se haya ejecutado correctamente. Por esta razón, podemos implementar el bloque de Else con el intento y excepto los bloques.

En este ejemplo, implementaremos el bloque más en nuestro script de Python.

#Implementar el bloque de try
intentar:
x = 1/2
Imprimir (x)
#Implementar el bloque excepto para captar el error
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementación del bloque de else
demás:
Imprimir ("Todo salió bien")

Producción

El bloque de lose se ejecuta después de la ejecución exitosa del bloque de try.

Veamos ahora otro ejemplo usando el bloque de Else.

#Implementar el bloque de try
intentar:
nombre = "Marca"
#Implementar el bloque excepto para captar el error
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementación del bloque de else
demás:
imprimir ("El nombre es:", nombre)

Producción

En el ejemplo anterior, la variable de nombre se define dentro del bloque de try y se imprime en el bloque de los demás.

El bloque finalmente

El finalmente El bloque contiene el código que debe ejecutarse independientemente de si el bloque de try plantea una excepción. El bloque Finalmente es opcional y se declara con el bloque de try. Por ejemplo, si hemos abierto un archivo de texto para leer el bloque de try y plantea un error o excepción, es mejor encerrar el archivo en el bloque finalmente, incluso si ocurre el error. Implementemos el bloque Finalmente en nuestro script de Python.

#Implementar el bloque de try
intentar:
Imprimir (my_dict)
#Implementar el bloque excepto para captar el error
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementar el bloque finalmente
finalmente:
Imprimir ("Este es el bloque Finalmente")
imprimir ("El bloque finalmente se ejecuta")

Producción

En la salida, se puede ver que el bloque de try plantea una excepción. Sin embargo, el bloque finalmente se ejecuta al final.

Ahora, abramos un archivo de texto en el bloque de prueba, que plantea una excepción mientras el archivo encerrado en el bloque finalmente.

#Implementar el bloque de try
intentar:
fileobj = open ("mystudent.xml "," r ")
fileobj.buscar (-2)
imprimir (fileObj.readLines ())
#Implementar el bloque excepto
excepto la excepción como exp:
imprimir (exp.__clase__)
#Implementar el bloque finalmente
finalmente:
fileobj.cerca()
Imprimir ("El archivo está cerrado correctamente")

Producción

Como puede ver, independientemente del error de valor, el archivo se ha cerrado con éxito dentro del bloque Finalmente.

Plantear una excepción

Aunque las excepciones se elevan automáticamente cuando ocurre un error, en Python, también puede aumentar las excepciones manualmente. El aumentar La palabra clave se usa para aumentar o lanzar la excepción.

Ahora aumentaremos algunas excepciones utilizando la palabra clave Rair. En el siguiente ejemplo, la condición IF se implementa para verificar los números no negativos. Si existen números no negativos, entonces se plantea la excepción "no se permiten números no negativos".

#Declarar dos variables numéricas
num1 = 20
num2 = -10
if ((num1<0) | (num2<0)):
aumentar la excepción ("no están permitidos los números no negativos")
demás:
Imprimir (Num1+Num2)

Producción

Conclusión

Se produce una excepción en respuesta a un error en el tiempo de ejecución. En Python, podemos manejar excepciones utilizando el try y excepto los bloques. Este artículo explicó cómo usar excepciones en Python a través de varios ejemplos.