Mochis NoticiasTecnología¿Capturando FileNotFoundError? ¡Ten cuidado!
Mochis NoticiasTecnología¿Capturando FileNotFoundError? ¡Ten cuidado!
Tecnología

¿Capturando FileNotFoundError? ¡Ten cuidado!

¿Capturando FileNotFoundError?  ¡Ten cuidado!

Última actualización el 3 de octubre de 2020

En pitón, FileNotFoundError es una excepción que se genera cuando un archivo solicitado no existe. Mucha gente supone que cuando sus programas no pueden abrir un archivo en modo de solo lectura o eliminar un archivo, FileNotFoundError deberían ser despertados y sólo necesitan procesar esto. Por ejemplo, algunas personas escriben código similar a:

def process_file(path):
    import sys

    try:
        f = open(path, 'r')  # or os.remove(path)
    except FileNotFoundError as e:
        print(f"File {path} not found!", file=sys.stderr)
        return
    # process the file...

Sin embargo, este código puede provocar errores inesperados. La razón es que no abrir un archivo en modo de solo lectura o eliminar un archivo no se debe necesariamente a la inexistencia del archivo. A menudo, esto se debe a diferentes motivos: permiso insuficiente o el archivo es un directorio. En este caso, PermissionError o IsADirectoryError ser echado en su lugar FileNotFoundError. Entonces, en el ejemplo anterior, uno querría capturarlos todos:

def process_file(path):
    import sys

    try:
        f = open(path, 'r')  # or os.remove(path)
    except FileNotFoundError:
        print(f"File {path} not found!", file=sys.stderr)
        return
    except PermissionError:
        print(f"Insufficient permission to read {path}!", file=sys.stderr)
        return
    except IsADirectoryError:
        print(f"{path} is a directory!", file=sys.stderr)
        return
    # process the file...

O incluso más simple, usa el viejo OSError:

def process_file(path):
    import sys

    try:
        f = open(path, 'r')
    except OSError as e:
        print(f"Unable to open {path}: {e}", file=sys.stderr)
        return
    # process the file...

¿Capturando FileNotFoundError?  ¡Ten cuidado!

La ubicación de la captura FileNotFoundError? ¡Ten cuidado! apareció por primera vez en Top Bug Net.

Source link

Hi, I’m Corina Guzman

Deja una respuesta

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