Come scrivere costruttori che potrebbero non riuscire a istanziare correttamente un oggetto
https://softwareengineering.stackexchange.com/questions/60250
-
31-10-2019 - |
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:
- lanciare un'eccezione
- Restituisci l'oggetto null (se il linguaggio di programmazione consente ai costruttori di restituire i valori)
- Restituisce un oggetto valido ma con un flag che indica che il suo percorso non è stato impostato correttamente (ugh)
- 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