2016-08-16 2 views
2

Hy! Je voudrais demander un conseil pour utiliser des exceptions. Je veux simplifier cela ...Utilisation des exceptions

if (functionSomething1) and (functionSomething2) and (functionSomething3) then 
    Do Something Good 
else 
    Raise Exception(errormsg_functionSomething1IsFalse or errormsg_functionSomething2IsFalse or errormsg_functionSomething3IsFalse); 

Toutes mes fonctions renvoient une valeur booléenne.

Quelle est la meilleure façon d'obtenir le message d'erreur un par un?

Par exemple ... Si functionSomething1 est Faux alors je devrais errormsg_functionSomething1IsFalse

Si functionSomething2 est Faux alors je devrais obtenir errormsg_functionSomething1IsFalse etc ...

Je pense que si-alors-je s n'est pas une bonne solution.

Cas ou essayez sauf? Qu'est-ce que tu penses?

Merci pour les réponses!

Répondre

7

Comme ceci:

if not functionSomething1 then 
    raise EMyException.Create(errormsg_functionSomething1IsFalse); 
if not functionSomething2 then 
    raise EMyException.Create(errormsg_functionSomething2IsFalse); 
if not functionSomething3 then 
    raise EMyException.Create(errormsg_functionSomething3IsFalse); 

// do something good 
0

soulèvent vos exceptions Sinon dans FunctionSomethingX, mais alors il n'y a pas besoin pour eux de retourner les valeurs « de réussite » booléens. L'avantage de faire cela est que FunctionSomethingX a probablement compris pourquoi il a échoué et retourne donc un message d'erreur plus descriptif. L'inconvénient de, c'est que tous les autres endroits qui appellent FunctionSomethingX devront gérer les exceptions qu'ils soulèvent.