2010-11-17 19 views
0

Plusieurs fois, j'écris une fonction qui renverra true en cas de succès et false en cas d'erreur/d'échec, et envelopper essentiellement une autre fonction qui fait la même chose.Meilleur moyen de coder renvoyant le résultat d'un appel vrai/faux

Un exemple (essentiellement indépendant de la langue, mais je vais écrire dans ECMAScript pour la familiarité):

function SendEmail(to, from, subject, body) { 
var eml = new EmailObj(); 
eml.To = to; 
eml.From = from; 
eml.Subject = subject; 
eml.Body = body; 
return eml.Send(); // This will return true/false 
} 

Mais, parfois, je veux faire quelque chose d'autre en fonction du résultat de la fonction intérieure (par exemple enregistrer des informations spécifiques):

function SendEmail(to, from, subject, body) { 
var eml = new EmailObj(); 
eml.To = to; 
eml.From = from; 
eml.Subject = subject; 
eml.Body = body; 
if(!eml.Send()) { 
    Log("Error in send: " + eml.Response); 
    return false; 
} 

return true; 
} 

Mais, je ne me sens comme je l'ai écrit un bon code quand je fais quelque chose comme ça.

Écritz-vous différemment? Suis-je paranoïaque? Ou pensez-vous que ce schéma mène en soi à ce dilemme et que je devrais voir si je peux changer la (les) approche (s) de niveau supérieur?

+0

Ça me va bien – paullb

Répondre

4

Je ne sais pas exactement pourquoi vous êtes inquiet à ce sujet, mais une autre option est la suivante:

var ret = eml.Send(); 
if (!ret) 
    Log("Error in send: " + eml.Response); 
return ret; 
3

Si la langue supporte (JavaScript ne), vous pouvez également envisager Exception Handling.