176 votes

Est-ce que try {} sans catch {} est possible en JavaScript ?

J'ai un certain nombre de fonctions qui renvoient quelque chose ou lancent une erreur. Dans une fonction principale, j'appelle chacune d'entre elles et j'aimerais renvoyer la valeur renvoyée par chaque fonction, ou passer à la deuxième fonction si la première fonction renvoie une erreur.

En gros, ce que j'ai actuellement, c'est.. :

function testAll() {
    try { return func1(); } catch(e) {}
    try { return func2(); } catch(e) {} // If func1 throws error, try func2
    try { return func3(); } catch(e) {} // If func2 throws error, try func3
}

Mais en fait, je voudrais seulement try pour le renvoyer (c'est-à-dire s'il n'envoie pas d'erreur). Je n'ai pas besoin de la fonction catch bloc. Cependant, un code comme try {} échoue parce qu'il lui manque un (inutilisé) catch {} bloc.

Je mets un exemple sur jsFiddle .

Existe-t-il donc un moyen de faire en sorte que ces catch Les blocs d'acier peuvent-ils être enlevés tout en conservant le même effet ?

-24voto

ThiefMaster Points 135805

Non. Vous devez les garder.

C'est en fait logique puisque les erreurs ne devraient pas être ignorées silencieusement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X