I wouldn't recommend that approach. Wrapping every function and using a 
try-catch is an unnecessary performance hit. For try-catch, a top level 
uncaught exception handler lets you know where to fix code. I rarely use 
try catch for the simple reason that it provides little value when doing 
async programming.

On Thursday, January 10, 2013 6:58:57 AM UTC-8, Daniel R. wrote:
>
> Looks a lot like an underscore mixin I use:
>
> http://life.neophi.com/danielr/2012/04/underscore_mixin_for_error_han.html
>
> In general though domains handle this better.
>
> -- Daniel R. <[email protected] <javascript:>> [http://danielr.neophi.com/
> ]
>
>
> On Thu, Jan 10, 2013 at 5:26 AM, Stuart P. Bentley 
> <[email protected]<javascript:>
> > wrote:
>
>> Hey guys, new(ish) to Node, first time posting. I made an npm account 
>> shortly after I started for programming, but I haven't written anything 
>> that really called for a reusable npm package until now.
>>
>> So, the code I'm writing doesn't use any flow-control/promise-chain 
>> libraries like seq or step or q or first or async or queue-async (although 
>> I have used the last one a little). However, it still has a few callbacks, 
>> and it rarely (if ever) cares about what to do if there's an error (other 
>> than panic, of course).
>>
>> Anyway, to avoid endless "if(err){console.error(err)} else {" typing, I 
>> found myself copy-pasting something like this at the top of all my scripts 
>> to wrap all my callbacks in:
>>
>>     function errorHandlingCb(errCb){
>>       return function onSuccess(successCb){
>>         return function(err) {
>>           if (err) {
>>             errCb(err);
>>           } else {
>>             successCb.apply(this,Array.**prototype.slice.call(**
>> arguments,1));
>>           }
>>       }
>>     }
>>
>> (or some variant on the onSuccess function with console.error or "throw 
>> err")
>>
>> Eventually I started writing something with its functionality spread 
>> across files, got tired of having the same 7-9 lines in multiple files in 
>> one project (let alone across multiple projects, and decided I'd turn it 
>> into a module:
>>
>> https://github.com/stuartpb/**catcher/blob/master/index.js<https://github.com/stuartpb/catcher/blob/master/index.js>
>>
>> I reset my npm password (which I'd unsurprisingly forgotten) and 
>> published it:
>>
>> https://npmjs.org/package/**catcher <https://npmjs.org/package/catcher>
>>
>> What do you think? I don't know if I'm replicating some existing thing, 
>> or if I've overlooked something, or made some assumption I shouldn't.
>>
>> Here are some ideas I have for 0.2:
>>
>> - "errorize" any non-Error strings / objects (to amerliorate the problems 
>> detailed in http://www.devthought.com/**2011/12/22/a-string-is-not-an-**
>> error/ <http://www.devthought.com/2011/12/22/a-string-is-not-an-error/>) 
>> by replacing line 5 with this:
>>
>>         if (err instanceof Error) ecb(err);
>>         else ecb(new Error(err));
>>
>> - dropp throwNewErr (in light of the above change)
>> - New functions oriented toward different combinations of wrapping the 
>> method and error handler for calling the method with the success callback, 
>> rather than just wrapping the error handler, then the success callback, 
>> then using that in the method
>>
>> -- 
>> Job Board: http://jobs.nodejs.org/
>> Posting guidelines: https://github.com/joyent/**node/wiki/Mailing-List-**
>> Posting-Guidelines<https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines>
>> You received this message because you are subscribed to the Google
>> Groups "nodejs" group.
>> To post to this group, send email to [email protected]<javascript:>
>> To unsubscribe from this group, send email to
>> nodejs+un...@**googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/**group/nodejs?hl=en?hl=en<http://groups.google.com/group/nodejs?hl=en?hl=en>
>>
>
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to