2017-09-27 1 views
-1

Selon le titre. Pas grand chose d'autre à dire.Dans ce cas, est-il bon de lancer des erreurs personnalisées plutôt que de gérer la réponse (par exemple, null) dans l'appelant?

EDIT comme le suggère ici est un cas d'utilisation dans laquelle je voudrais savoir si plus de sens soit

  • jeter une erreur ou
  • retour « null » (comme spécifique erreur ne se préoccupe pas)

a opérations db enveloppés dans un procédé en une 4 angulaire de service

return this._db.upsert(item._id, (doc) => item) 
    .then(response => { 
     return response; 
    }) 
    .catch(specificErrorProvided => { 
     // return null or throw Error? (the user is not concerned with the specific error) 
    }); 
+0

Le problème n'est pas que c'est général, c'est que ce n'est pas clair. Plutôt que de demander aux gens de ne pas baisser le ton, faites en sorte que la question soit suffisamment claire pour qu'ils n'en ressentent pas le besoin. Montrez des exemples de scénarios que vous demandez aux gens de comparer. Expliquez exactement quel type de données vous voulez que les gens citent (autrement, c'est «principalement basé sur l'opinion» et donc hors-sujet), etc. –

+0

cette question devrait être affichée sur cs.stackexchange.com – ControlAltDel

+0

Les exceptions personnalisées sont juste un autre type de réponse, et doivent également être traitées par l'appelant. – Bergi

Répondre

1

Les erreurs personnalisées sont géniales pour l'utilisateur final. Par exemple:

505 Erreur interne du serveur

Est-ce plus clair à l'utilisateur autre que:

ne peut pas atteindre le serveur en ce moment. Contactez l'administrateur

L'autre cas d'utilisation concerne les cas de débogage, mais assez rare. Je dirais qu'ils sont faits pour l'utilisateur final.

EDIT

Au cas où vous avez montré, une erreur personnalisée déterminerait l'action à prendre. Dans le cas d'avoir plus d'une fonction qui pourrait retourner null vous pourriez enregistrer l'erreur et ensuite renvoyer une réponse plus détaillée comme dbFunError2 par exemple, pour vous aider à déterminer quelle étape prendre ensuite autre que juste obtenir un tas de null.

Espérons que cela vous rendra clair.

+0

merci. logique. Je vais juste attendre pour voir si une autre réponse et ensuite je vais l'accepter;) – dragonmnl

+0

De rien, je suis heureux de vous aider. –