J'ai regardé à travers les discussions ici sur ce sujet et je ne trouve pas ce que je veux.Comment est-ce que je peux emballer ces fonctions afin que leurs exceptions soient toujours traitées?
J'ai un tas de fonctions qui retournent la chaîne et je veux qu'ils ne retournent pas une chaîne si l'entrée est mauvaise et je ne veux pas que le programme quitte non plus ET je ne veux pas emballer tous les appels/capture.
function foo(num){
if(num > 5){
throw SomeException("Input too big")
}else{
return "bar"+num
}
}
Je veux enregistrer une erreur comme « 6 est trop grand pour foo », au lieu de quitter le programme. Mais ce sera une sorte d'API, donc je ne veux pas que l'utilisateur doive essayer/attraper chaque fois qu'il utilise une de ces fonctions. Ceci est un script nodejs.
cela fonctionne, mais est maladroit:
f = {
command : function(cmd,arg){
try {
console.log(q[cmd](arg));
}
catch (e) {
console.log("Error: " + e + " for " + cmd);
}
},
foo : function(str){
throw ("foo error");
},
foo2 : function(str){
throw ("foo2 error");
}
};
f.command("foo",2);
f.command("foo2",3);
Je dois m'assurer que je suis asynchrone sur ces petites fonctions? – tladuke
@tladuke J'ai supposé que votre exemple était trop trivial. Si vous voulez bien gérer les erreurs, alors ce modèle asynchrone est sympa. tout le modèle 'next' est aussi sympa. – Raynos