Sunday 15 July 2012

Conditional Error Handling in Javascript -



Conditional Error Handling in Javascript -

when deciding if ignore, handle of re-throw errors in try catch structure, best way uniquely identify exact error?

i can't find standard error number, have parse name , message properties?

edit: in illustration below, want check if error due lack of property on listevent who's key value of evnt.type. if source of error, want ignore it, otherwise want re-throw allow bubble up.

the way can think of sort of duck-typing error this...

try{ listevent[evnt.type](procedure) }catch(error){ if (error.message.match(evnt.type)) { console.log(error.name + ' ' + error.message + ' - ignored') } else { throw error } }

create custom exception , utilize instanceof:

function illegalargumentexception(message) { this.message = message; }

you want create extend error prototype:

illegalargumentexception.prototype = new error(); illegalargumentexception.prototype.constructor = error;

which can utilize so:

throw new illegalargumentexception("argument cannot less zero");

you can check type using instanceof:

try { // code generates exceptions } grab (e) { if (e instanceof illegalargumentexception) { // handle } else if (e instanceof someothertypeofexception) { // handle } }

you can add together other property want constructor of exception.

as far illustration goes, i'm not sure you're trying do. listevent[evnt.type] homecoming undefined if event.type not property or key in listevent. improve see if evnt.type exists doing this:

if (typeof listevent[evnt.type] !== "undefined") { listevent[evnt.type](procedure); }

javascript error-handling

No comments:

Post a Comment