Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

171
Visualizações
Cómo escribir una función Javascript personalizada

Tengo docenas de funciones con el bloque try catch para manejar y registrar cualquier error que ocurra.

 function add(a, b) { try { return a + b; } catch (error) { log.error(error.message + ' in add'); } }

Como estas instrucciones try catch tienen el mismo tipo de código para cada función que menciona el mensaje de error y el nombre de la función en cada registro, quiero alguna forma de evitar escribir try catch para cada función y quiero que se agregue automáticamente. Mi function debería ser como la de abajo, pero debería funcionar como la de arriba.

 function add(a, b) { return a + b; }

Como podría ser posible?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede envolver sus funciones usando clausuras .

Para iniciar sesión, puede intentar usar Function.name , pero para obtener información significativa, esto descarta las funciones de flecha y, de lo contrario, las funciones anónimas. Esto podría resolverse pasando explícitamente una cadena de nombre a la función de wrap , pero...

Por supuesto, no hay garantía de que la función devuelta se use a través de un identificador relacionado con el nombre original (cualquiera que whatever frente anError continuación).

 const wrap = func => (...args) => { try { return func.apply(this, args); } catch (e) { console.error(`${e} in ${func.name}`); } }; const add = wrap((a, b) => a + b); const fail = wrap(t => { if (t) throw new Error('foo'); }); const whatever = wrap(function anError () { throw 'an error'; }); console.log(add(1, 2)); fail(false); fail(true); whatever();

Salida combinada:

 3 Error: foo in an error in anError
about 4 years ago · Juan Pablo Isaza Relatório

0

¿Puedes intentar con la devolución de llamada...?

 function add(a, b){ return a + b; } function substract(a, b){ return a - b; } function calc(a){ try{ const f = Array.prototype.shift.apply(arguments); return f(...arguments); }catch(e){ console.log(e.stack); } } calc(substract, 1, 2);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda