print - Cómo usar la palabra clave “raise” en Python
raise except python (6)
Esta pregunta ya tiene una respuesta aquí:
He leído la definición oficial de "subir", pero todavía no entiendo muy bien lo que hace.
En términos más simples, ¿qué es "subir"?
Ejemplo de uso ayudaría.
Además de raise Exception("message")
y raise
Python 3 introdujo una nueva forma, raise Exception("message") from e
. Se llama encadenamiento de excepciones, le permite preservar la excepción original (la causa raíz) con su rastreo.
Es muy similar a las excepciones internas de C #.
Más información: https://www.python.org/dev/peps/pep-3134/
Puede usarlo para generar errores como parte de la comprobación de errores:
if (a < b):
raise ValueError()
O maneje algunos errores, y luego transfiéralos como parte del manejo de errores:
try:
f = open(''file.txt'', ''r'')
except IOError:
# do some processing here
# and then pass the error on
raise
Se utiliza para levantar errores.
if something:
raise Exception(''My error!'')
Algunos ejemplos here
Tiene 2 propósitos.
Yentup ha dado el primero.
Se usa para levantar tus propios errores.
if something: raise Exception(''My error!'')
La segunda es volver a subir la excepción actual en un controlador de excepciones, para que pueda ser manejada más arriba en la pila de llamadas.
try:
generate_exception()
except SomeException as e:
if not can_handle(e):
raise
handle_exception(e)
raise
hace que se raise
una excepción. Algunos otros idiomas usan el verbo ''lanzar'' en su lugar.
Está destinado a señalar una situación de error; señala que la situación es excepcional al flujo normal.
Las excepciones aumentadas pueden ser capturadas nuevamente por el código ''upstream'' (un bloque circundante, o una función anterior en la pila) para manejarlo, usando un try
, except
combinación.
raise
sin ningún argumento es un uso especial de la sintaxis de Python. Significa obtener la excepción y volver a subirla. Si este uso hubiera podido llamarse reraise
.
raise
De la referencia del lenguaje Python :
Si no hay expresiones presentes, levante re-eleva la última excepción que estaba activa en el alcance actual.
Si el raise
se usa solo sin ningún argumento, se usa estrictamente para aumentar el rendimiento. Si se hace en una situación que no está en un aumento de otra excepción, se muestra el siguiente error: RuntimeError: No active exception to reraise