Question

Parfois, vous devez écrire un constructeur qui peut échouer. Par exemple, disons que je veux instancier un objet avec un chemin de fichier, quelque chose comme

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

Tant que le chemin pointe vers un fichier approprié, tout va bien. Mais si la chaîne n'est pas un chemin valide, les choses devraient se casser. Mais comment?

Vous pourriez:

  1. jeter une exception
  2. Renvoie un objet NULL (si votre langage de programmation permet aux constructeurs de renvoyer des valeurs)
  3. retourner un objet valide mais avec un drapeau indiquant que son chemin n'était pas correctement défini (UGH)
  4. les autres?

Je suppose que les «meilleures pratiques» de divers langages de programmation le mettraient en œuvre différemment. Par exemple, je pense que l'OBJC préfère (2). Mais (2) serait impossible à implémenter en C ++ où les constructeurs doivent avoir un vide comme type de retour. Dans ce cas, je suppose que (1) est utilisé.

Dans votre langage de programmation de choix, pouvez-vous montrer comment vous gérez ce problème et expliquer pourquoi?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
scroll top