Domanda

A volte è necessario scrivere un costruttore che può fallire. Ad esempio, supponiamo che voglio istanziare un oggetto con un percorso del file, qualcosa di simile

obj = new Object("/home/user/foo_file")

Finché il percorso indica un file appropriato va tutto bene. Ma se la stringa non è un percorso valido, le cose dovrebbero rompersi. Ma come?

Potresti:

  1. lanciare un'eccezione
  2. Restituisci l'oggetto null (se il linguaggio di programmazione consente ai costruttori di restituire i valori)
  3. Restituisce un oggetto valido ma con un flag che indica che il suo percorso non è stato impostato correttamente (ugh)
  4. altri?

Presumo che le "migliori pratiche" di vari linguaggi di programmazione lo implementerebbero in modo diverso. Ad esempio, penso che OBJC preferisca (2). Ma (2) sarebbe impossibile da implementare in C ++ in cui i costruttori devono avere nullo come tipo di ritorno. In tal caso prendo che (1) sia usato.

Nel tuo linguaggio di programmazione preferito puoi mostrare come gestiresti questo problema e spiegare perché?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top