¿Es mejor envolver un Try/Catch dentro de una función (alrededor de su código) o es mejor envolverlo alrededor de la call a la función?
¿Hace una diferencia en absoluto?
Considere el siguiente código:
function catchErrorInside(){ try { document.querySelector('#element-that-doesnt-exist').style.display = 'block'; } catch(e){console.log(e)} } catchErrorInside();VERSUS
function catchErrorOutside(){ document.querySelector('#element-that-doesnt-exist').style.display = 'block'; } try { catchErrorOutside(); } catch(e){console.log(e)}Las pilas de errores son las mismas cuando lo probé. Descubrí que si envolvía el código dentro de la función Y la función se llama a sí misma con los bloques Try/Catch, el error que se genera proviene del interior de la función y no de la llamada.
Intenté buscar en SO y Google, pero no pude encontrar ninguna preferencia real o ventajas y desventajas. Mi idea es que, dependiendo de la complejidad de la función, es posible que desee usar Try/Catch dentro de la función, ya que es posible que desee usar los bloques try/catch varias veces dentro de una función determinada.
en general, el manejo de excepciones debe colocarse al comienzo de una pila de llamadas (en su ejemplo, es el segundo caso). Si coloca el bloque try / catch dentro de alguna function profundamente arraigada en su aplicación, le quita la posibilidad a la persona que llama de manejarlo de la manera que prefiera (a menos que vuelva a lanzar Error dentro de catch , pero rara vez es necesario volver a lanzar). los ejemplos proporcionados por u no tienen sentido, porque u registra información, que de todos modos se registra en la consola sin necesidad de usar catch para ello.