Problema: volver a generar la excepción, que se ha capturado en el bloque de excepción .
Código n. ° 1: usar la declaración de aumento por sí sola.
def example(): try: int('N/A') except ValueError: print("Didn't work") raise example()
Producción :
Didn't work Traceback (most recent call last): File "", line 1, in File "", line 3, in example ValueError: invalid literal for int() with base 10: 'N/A'
Este problema suele surgir cuando no es necesario realizar ninguna acción en respuesta a una excepción (por ejemplo, registro, limpieza, etc.). Un uso muy común podría ser en los controladores de excepciones catch-all.
Código #2: Captura de todos los manejadores de excepciones.
try: ... except Exception as e: # Process exception information in some way ... # Propagate the exception raise
Problema 2: hacer que un programa emita mensajes de advertencia (p. ej., sobre funciones obsoletas o problemas de uso).
Código #3: Usando la warnings.warn()
función
import warnings def func(x, y, logfile = None, debug = False): if logfile is not None: warnings.warn('logfile argument deprecated', DeprecationWarning)
Los argumentos warn()
son un mensaje de advertencia junto con una clase de advertencia, que suele ser una de las siguientes:
UserWarning, DeprecationWarning, SyntaxWarning, RuntimeWarning, ResourceWarning o FutureWarning.
El manejo de las advertencias depende de cómo se ejecuta el intérprete y otras configuraciones.
Salida al ejecutar Python con la -W all
opción.
bash % python3 -W all example.py
example.py:5: DeprecationWarning: logfile argument is deprecated
warnings.warn('logfile argument is deprecated', DeprecationWarning)
Normalmente, las advertencias solo producen mensajes de salida en caso de error estándar. Para convertir las advertencias en excepciones, utilice la -W error
opción.
bash % python3 -W error example.py
Traceback (most recent call last):
File "example.py", line 10, in
func(2, 3, logfile ='log.txt')
File "example.py", line 5, in func
warnings.warn('logfile argument is deprecated', DeprecationWarning)
DeprecationWarning: logfile argument is deprecated
bash %
Publicación traducida automáticamente
Artículo escrito por manikachandna97 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA