Created
June 2, 2022 02:42
-
-
Save M-Gonzalo/52ac276685006fe204836524e227757f to your computer and use it in GitHub Desktop.
How to handle the absence of an expected param on a Javascript function
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ########################################################################################### | |
const noParams = () => { // Función auxiliar que maneja la ausencia de parámetros | |
// Tenemos que determinar el nombre de la función que nos está llamando. | |
// Este se encuentra en el trazado de pila, tercera línea, segunda palabra. | |
const parentFunc = new Error().stack.split('\n')[2].trimStart().split(' ')[1] | |
throw new Error(`Function "${parentFunc}" must be called with a parameter`) | |
} | |
// ########################################################################################### | |
// Función de testeo: | |
const myFunc = (param = noParams()) => { console.log(param) } | |
// Esto funciona gracias a que le podemos asignar un valor | |
// predeterminado a un parámetro, en este caso, la función noParams ejecutada. | |
// ########################################################################################### | |
myFunc('This one is working...') // Pero no debemos confiarnos, lo correcto es hacer esto: | |
// Como la falta de parámetros va a desencadenar un error, | |
// necesitamos una función que lo capture para que no colapse la aplicación. | |
try { | |
myFunc() | |
} catch (error) { | |
console.log(error.message) | |
} | |
// ########################################################################################### |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment