2010-10-20 12 views
0

Ce n'est vraiment pas une question importante. Je voulais juste savoir quelle méthode est la plus populaire et s'il existe une sorte de norme de facto.Utilisation du bloc try-catch dans une fonction

Ce,

function foobar 
{ 
    int retVal = 0; 
    try 
    { 
     retVal+=100; 
    } 
    catch 
    { 
     //error handling code 
    } 
    return retVal; 
} 

Ou cela?

function foobar 
{ 
    try 
    { 
     return 100; 
    } 
    catch 
    { 
     //error handling code 
    } 
    return 0; 
} 
+0

............... –

+0

le second est plus lisible en particulier pour longtemps les fonctions. Cependant, le premier semble être favorisé par les gens paresseux. – dvhh

+0

la deuxième déclaration est bizarre. – Hanseh

Répondre

3

Cela dépend vraiment de ce que fait la fonction. L'utilisation d'une variable retVal est utile lorsque la fonction doit passer par quelques opérations pour construire la valeur de retour. Si la valeur de retour est plus atomique que cela je ne voudrais pas déranger avec la variable supplémentaire.

3

Malheureusement, cela dépend beaucoup de l'exception que vous attendez de se produire, et si la fonction doit renvoyer une valeur par défaut en cas d'une exception. Ceci sera également influencé par la fonction elle-même, car je trouve que dans les fonctions utilitaires plus petites, il est facile de lire et de voir où la fonction retourne, et ce qu'elle retournera, comme s'il est parfois plus applicable d'avoir plus qu'un point de retour en tant que logique métier/logique normale rendrait cela plus compréhensible.

donc à la fois est acceptable ...

0

Cette question n'a pas beaucoup à voir avec prise d'essai comme il le fait avec des styles de codage. Dans la première option vous avez seulement le chemin de retour pour la fonction, alors que dans la seconde vous en avez plusieurs.

Autre que le style de codage, dans le cas de plus d'un chemin de retour, vous pouvez toujours voir la première option, mais cela dépend du code en question.

J'essaie d'éviter plus d'un chemin de retour à la fonction. Je trouve qu'il est plus facile de lire pour mon équipe (ils font la même chose, car c'est dans une partie de nos lignes directrices).

0

Il sera prudent de retourner à la fin simple, car si vous aviez un finalement bloquer ou d'autres choses à nettoyer après, revenir prématurément peut conduire à des erreurs.

+1

Enfin sera ** TOUJOURS ** être exécuté –

0

Le premier est mon choix si le try catch a plusieurs processus qui affecteraient la valeur retournée. Le second est ajusté si vous voulez retourner une valeur constante.

0

Je trouve cela plus facile à lire (mettre le retour à l'intérieur du bloc catch):

function foobar 
{ 
    try 
    { 
     return 100; 
    } 
    catch 
    { 
     //error handling code 
     return 0; 
    } 
} 
Questions connexes