Python | Vuelva a generar la última excepción y emita una advertencia

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *