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

247
Visualizações
¿Cómo hacer funciones explícitas que arrojarían un error en JavaScript?

Me gustaría hacer explícitas mis funciones de que arrojaría errores.

Por ejemplo;

 const hexToDec = (string) => { if (!isHex(string)) { throw new Error("the given string is not hex.") } return parseInt(string, 16); }

cuando veo este código en mi IDE, me dice que este código devuelve String, pero no hay información sobre la posibilidad de Error. Los miembros de mi equipo pueden olvidarse de "intentar - atrapar".

Tengo una idea que es hacer que esta función sea async , para que devuelva una Promesa. Sin embargo, creo que este código debe sincronizarse...

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

0

Dentro de JavaScript mismo, no puede, no hay nada como el concepto de Java de excepciones verificadas que declara.

Con las anotaciones JSDoc, puede anotar la función para decir que arroja:

 /** * Converts the given hex string to a number. * * @param {string} string The string to convert. * @returns {number} The resulting number. * @throws Error if `string` isn't valid hex. */ const hexToDec = (string) => { if (!isHex(string)) { throw new Error("the given string is not hex."); } return parseInt(string, 16); };

Los miembros de mi equipo pueden olvidarse de "intentar - atrapar".

En general, los errores deben detectarse lo más lejos posible, normalmente en la función de punto de entrada del entorno (por ejemplo, un controlador de eventos o una devolución de llamada de función de host). Los miembros de su equipo no deberían necesitar ajustar cada llamada a hexToDec en try / catch ; si no están seguros de si la cadena contiene un hexágono válido, pueden verificarlo con isHex . Las excepciones son para condiciones excepcionales, tratando de convertir la cadena cuando espera que sea válida.

Tengo una idea que hace que esta función sea asíncrona, para que devuelva una Promesa. Sin embargo, creo que este código debe sincronizarse...

Hacerlo async no haría nada para que sea necesario verificar si falla. Simplemente significaría que, en lugar de lanzar, rechazaría su promesa (que es la versión async de lanzar).


Me perdí la etiqueta mecanografiada en la pregunta. Lo anterior todavía funciona para TypeScript, pero proporcionaría la anotación de tipo para el parámetro en un lugar diferente (y probablemente sea mejor no usar una string para el nombre del parámetro, ya que es un nombre de tipo [funciona, pero es confuso]) :

 /** * Converts the given hex string to a number. * * @param str The string to convert. * @returns The resulting number. * @throws Error if `string` isn't valid hex. */ const hexToDec = (str: string) => { if (!isHex(str)) { throw new Error("the given string is not hex."); } return parseInt(str, 16); };

Enlace del patio de recreo

Aquí hay una captura de pantalla del área de juegos de TypeScript que muestra cómo un IDE decente mostrará esa función si pasa el mouse sobre él (o similar):

IDE que muestra las anotaciones JSDoc para la función en una ventana emergente

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