Incluí una lib que usa console.error() en lugar de throw .
Debido a esto, mi try...catch no funciona. Y debido a que es una biblioteca de terceros, no puedo cambiar su código.
¿Existe una solución alternativa (preferiblemente elegante) para "atrapar" un console.error() ?
No puedes atrapar algo que no arroja ningún error. Parece una muleta, pero puede anular su método console.error en el código a continuación. ¡Pero no olvide que después de haber anulado console.error que arroja errores!
console.errorWithoutExceptions = console.error; console.error = (...messages) => { console.errorWithoutExceptions(...messages); throw new Error(messages[0]); } // now you can use try { // your code console.error('test error'); } catch(e) { // process you error with message 'test error' here } // don't forget to restore previous console.error after using console.error = console.errorWithoutExceptions;Puede probar y manipular el objeto de la consola global según sus necesidades. Pero eso es complicado y podría generar errores adicionales.
Más aquí: Consola | Documentos de Node.js