Termini per distinguere tra errori visibili internamente e visibili dall'utente

1

Nel mio codice ho spesso bisogno di distinguere tra i messaggi destinati alla registrazione e quelli visualizzati agli utenti. Sto cercando un termine breve per denominare variabili e metodi che indica un messaggio leggibile dall'utente. Ho provato "userReadable", "userVisible", ecc., Ma si sentono tutti troppo prolissi, specialmente se combinati con altri dettagli come "fileUserReadableError".

per esempio:

fileLogError = "Error 123 occurred writing file /x/y/z";
fileUserReadableError = "We couldn't save your kitty picture, sorry";

C'è un termine migliore? Quest'ultimo è soprattutto un boccone (fantastico, qualunque sia)

    
posta James Beninger 30.05.2016 - 16:09
fonte

1 risposta

1

In base alla tua descrizione sparsa i due errori possono essere identici internamente con la differenza che viene fatta dal punto di cattura. Per essere più concreti:

def write_photo(photo, path):
    try:
       open(path, 'w')     # can throw OSError
       ...
    except OSError:
       logging.error("cannot write path", path)
       raise

def save_kitten(kitten):
    try:
        write_photo(kitten, '/x/y/z')
    except OSError:
        print('We couldn't save your kitty picture, sorry')

Ovviamente questo modello è simile a Python perché ha un meccanismo di eccezione ben costruito. Ma puoi leggerlo come pseudo-codice. Il punto è che ci sono due livelli di operazione, l'interno ( write_photo ) e l'utente rivolto ( save_kitten ). Lo stesso errore può essere interpretato in due modi diversi a seconda del livello in cui si verifica l'errore. Il concetto di logging e re-raise consente di gestire un errore a due diversi livelli di descrizione.

Implicito qui è che l'errore in realtà non cambia il suo contenuto; il solitario raise ripropone la stessa eccezione. Ma lo stesso errore ha interpretazioni diverse che sono una caratteristica del livello di rilevamento. L'aggiunta di un altro tipo di errore è inutilmente ridondante quando ogni livello sa con chi sta comunicando.

    
risposta data 30.05.2016 - 18:36
fonte

Leggi altre domande sui tag