Relanzar excepción en Python
- Lanzar una excepción en Python
- Lanzar una excepción con un mensaje personalizado en Python
- Relanzar excepción en Python
Python nos proporciona bloques try-except
para manejar excepciones en nuestros programas. También nos da la instrucción raise
para lanzar manualmente una excepción.
Este artículo discutirá cómo podemos volver a lanzar una excepción en un programa de Python.
Lanzar una excepción en Python
Podemos usar la sentencia raise
para lanzar una excepción en un programa. La sintaxis de la sentencia raise
es la siguiente.
raise exception_name
Aquí, la declaración raise
toma una excepción llamada exception_name
como entrada y lanza la excepción que maneja el intérprete de Python.
Por ejemplo, podemos generar una excepción ValueError
en nuestro programa usando la instrucción raise
.
-
El siguiente programa le pide al usuario que proporcione un número como entrada usando la función
input()
. La funcióninput()
devuelve la entrada como una cadena asignada al número de variable. -
Después de eso, el programa verifica si la entrada consta solo de dígitos (o no). Para ello utilizamos el método
isdigit()
.El método
isdigit()
, cuando se invoca en una cadena, comprueba si todos los caracteres de la cadena son dígitos decimales o no. En caso afirmativo, devuelveTrue
; en caso contrario, devuelveFalse
.
number = input("Please Enter a number:")
if number.isdigit():
number = int(number)
square = number * number
print("The square of {} is {}".format(number, square))
else:
raise ValueError
Producción :
Please Enter a number:Aditya
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 7, in <module>
raise ValueError
ValueError
En el programa anterior, si la entrada que da el usuario consta solo de dígitos decimales, se ejecuta el código en el bloque if
. Por lo tanto, la entrada se convierte en un número entero mediante la función int()
.
Finalmente, se calcula e imprime el cuadrado del entero.
Si la entrada proporcionada por el usuario consta de caracteres que no sean dígitos decimales, se ejecuta el código dentro de la instrucción else
y el programa lanza una excepción ValueError
.
Aquí, la excepción ValueError
es una excepción incorporada.
Lanzar una excepción con un mensaje personalizado en Python
También podemos lanzar una excepción personalizada con un mensaje personalizado. Para ello, crearemos un objeto de excepción utilizando el constructor Exception()
.
El constructor Exception()
toma una cadena de mensaje como argumento de entrada y devuelve una excepción después de la ejecución. Podemos lanzar la excepción personalizada usando la instrucción raise
, como se muestra en el siguiente ejemplo.
number = input("Please Enter a number:")
if number.isdigit():
number = int(number)
square = number * number
print("The square of {} is {}".format(number, square))
else:
raise Exception("The input contains characters other than decimal digits.")
Producción :
Please Enter a number:Aditya
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 7, in <module>
raise Exception("The input contains characters other than decimal digits.")
Exception: The input contains characters other than decimal digits.
Aquí, puede ver que el programa genera una excepción personalizada con el mensaje “La entrada contiene caracteres que no son dígitos decimales”.
Relanzar excepción en Python
Las excepciones en Python se manejan usando bloques try-except
. Cuando se lanza una excepción en un bloque try
, se captura en el bloque except
y se toman las medidas adecuadas.
Puedes observar esto en el siguiente ejemplo.
number = input("Please Enter a number:")
try:
if number.isdigit():
number = int(number)
square = number * number
print("The square of {} is {}".format(number, square))
else:
raise Exception("The input contains characters other than decimal digits.")
except Exception:
print("In the except block. exception handled.")
Producción :
Please Enter a number:Aditya
In the except block. exception handled.
Aquí, la excepción se genera en el bloque try
. Luego, capturamos la excepción en el bloque excepto
, la manejamos si es necesario e imprimimos un mensaje apropiado.
Si desea volver a generar la excepción en su programa de Python, puede usar la instrucción aumentar
en el bloque excepto
, como se muestra a continuación.
number = input("Please Enter a number:")
try:
if number.isdigit():
number = int(number)
square = number * number
print("The square of {} is {}".format(number, square))
else:
raise Exception("The input contains characters other than decimal digits.")
except Exception:
print("In the except block. exception handled. Rethrowing exception.")
raise
Producción :
Please Enter a number:Aditya
In the except block. exception handled. Rethrowing exception.
Traceback (most recent call last):
File "/home/aditya1117/PycharmProjects/pythonProject/webscraping.py", line 8, in <module>
raise Exception("The input contains characters other than decimal digits.")
Exception: The input contains characters other than decimal digits.
En este ejemplo, primero capturamos y manejamos la excepción en el bloque excepto
. Después de eso, usamos la instrucción raise
para volver a generar la excepción en Python.
Aditya Raj is a highly skilled technical professional with a background in IT and business, holding an Integrated B.Tech (IT) and MBA (IT) from the Indian Institute of Information Technology Allahabad. With a solid foundation in data analytics, programming languages (C, Java, Python), and software environments, Aditya has excelled in various roles. He has significant experience as a Technical Content Writer for Python on multiple platforms and has interned in data analytics at Apollo Clinics. His projects demonstrate a keen interest in cutting-edge technology and problem-solving, showcasing his proficiency in areas like data mining and software development. Aditya's achievements include securing a top position in a project demonstration competition and gaining certifications in Python, SQL, and digital marketing fundamentals.
GitHub