var api_friends_helper = require('./helper.js'); try{ api_friends_helper.do_stuff(function(result){ console.log('success'); }; }catch(err){ console.log('caught error');
And inside do_stuff I have:
function do_stuff(){ //If I put the throw here, it will catch it! insert_data('abc',function(){ throw new Error('haha'); }); }
Why does he never log a "caught error"? Instead, it displays the stack trace and the error object on the screen:
{ stack: [Getter/Setter], arguments: undefined, type: undefined, message: 'haha' } Error: haha at /home/abc/kj/src/api/friends/helper.js:18:23 at /home/abc/kj/src/api/friends/db.js:44:13 at Query.<anonymous> (/home/abc/kj/src/node_modules/mysql/lib/client.js:108:11) at Query.emit (events.js:61:17) at Query._handlePacket (/home/abc/kj/src/node_modules/mysql/lib/query.js:51:14) at Client._handlePacket (/home/abc/kj/src/node_modules/mysql/lib/client.js:312:14) at Parser.<anonymous> (native) at Parser.emit (events.js:64:17) at /home/abc/kj/src/node_modules/mysql/lib/parser.js:71:14 at Parser.write (/home/abc/kj/src/node_modules/mysql/lib/parser.js:576:7)
Note that if I set the RIGHT AFTER throw after do_stuff (), it will catch it.
How can I catch it even if I put it in another function?
TIMEX
source share