I flipper fisici dispongono di sensori che rilevano quando qualcosa all'esterno tenta di esercitare un'influenza eccessiva sul percorso della palla spingendo o inclinando la macchina. (Dico troppo qui perché il flipper ha una lunga tradizione di accettabilità di una certa quantità di movimento, specialmente quando la palla viene appesa a qualcosa.) Quando la macchina va in uno stato inclinato, tutto ciò che potrebbe segnare più punti per il giocatore è disabilitato fino a quando la palla cade dal fondo del tavolo. Questo di solito è accompagnato da una luce "Tilt" sul gioco e, talvolta, un segnale acustico di avvertimento. Pensalo come l'equivalente del flipper nel sollevare un'eccezione.
La metafora di Martin è tesa perché ErrorCode.OK
, presumibilmente, è valida status
e non qualcosa che cerca di forzare la funzione a fare qualcosa che non dovrebbe. In altre parole, quell'input non sta cercando di ottenere la funzione per restituire il messaggio di errore per un argomento mancante.
Il resto non risponde alla tua domanda, ma può darti motivo di leggere il resto del libro con occhio critico. Non ho accesso al libro per vedere se il testo che circonda quell'esempio fa un cenno della mano, ma in caso contrario, il metodo fa cose che non sono all'altezza del titolo:
Il primo è che non tratta l'input o lo stato presumibilmente non valido come una condizione eccezionale e se ne lamenta. Se la documentazione del metodo dice che dovrebbe essere chiamato solo quando l'oggetto si status
trova in uno stato di errore, è chiaramente un problema logico nel codice chiamante che deve essere corretto.
Il secondo è che restituisce una stringa valida quanto una qualsiasi delle altre ma che funge effettivamente da costante magica. Un chiamante che desidera sapere se è stato un errore invocare il metodo dovrà controllare il contenuto del valore restituito o trasmetterlo alle persone che lo leggono per decifrare (ad es. Operation result:
Senza ulteriori informazioni).
Un terzo facoltativo sarebbe che se il compilatore prevede una copertura completa dei valori enumerati, l'utilizzo default
per catturare i casi non coperti è molto più leggibile rispetto al doverli enumerare singolarmente o in un gruppo. (Il lato filp è che potrebbe essere meglio far lamentare il compilatore in modo che l'aggiunta di un secondo stato, senza errori, costringerebbe il programmatore a dichiarare esplicitamente come dovrebbe essere gestito.)