WebReference.com logo
tip archive  •   about  •   sitemap  •   contact  •   jobs  •   write for us  •   subscribe


[prev]

Debugging JavaScript: Handling Runtime Exceptions [con't]

Technical Lead
Thomson Reuters (Markets) LLC
US-NY-New York

Justtechjobs.com Post A Job | Post A Resume

A variation of error swallowing is to display a generic error for anything that goes wrong:

Now the problem is that the error is so generic as to be of no benefit for the client or developer.

Use Error Types to Create More Meaningful Messages

There are six core Error classes in JavaScript that extend the Error object.

EvalError:
Occurs within the eval() function.
RangeError:
Occurs when a numeric variable or parameter is outside of its valid range.
ReferenceError:
Occurs when de-referencing an invalid reference.
SyntaxError:
Occurs while parsing code.
TypeError:
Occurs when a variable or parameter is not of a valid type.
URIError:
Occurs when encodeURI() or decodeURI() are passed invalid parameters.

An easy way to set an error message is to use a switch statement:

Error Properties

As in all things JavaScript, there are some error properties that are supported by all major browsers, while others are vendor specific. Here is the list of available error properties:

Standard Properties

constructor: Specifies the function that created an instance's prototype.

message: Error message.

name: One of the six Error classes outlined above, or simply "Error".

Vendor-specific Extensions

Microsoft:

description: Error description. Similar to message.

number: Error number.

Mozilla:

fileName: Path to file that raised this error.

lineNumber: Line number in file that raised this error.

stack: Stack trace.

The following code creates a customized error message using a combination of error properties:

Throwing Your Own Errors

The throw statement gives you the ability to create custom exceptions in order to generate even more specific and detailed error messages. In addition to Errors, the throw statement works with strings, integers, booleans or just about any object type. Here's a function that validates an age against minimum and maximum values and throws an appropriate error if it fails. Regardless of the results, it always returns success or failure:

You may also enjoy:


Adding Custom Properties to Your Errors

Having the ability to throw objects gives us the advantage of being able to define our own properties and methods. In this example, the error is really an object literal. It would be easy to imagine how the error handling code could use the htmlMessage to insert a link in the document using the DOM:

While perhaps not on par with some full-fledged programming languages, JavaScript's error handling is making great strides. Next time, we'll examine some ways to make very thorough debugging statements as well as examine some tools that can assist us in JavaScript development.


Rob Gravelle combined his love of programming and music to become a software guru and accomplished guitar player. He created systems that are used by Canada Border Services, CSIS and other Intelligence-related organizations. As a software consultant, Rob has developed Web applications for many businesses and recently created a MooTools version of PHPFreechat for ViziMetrics. Musically, Rob recently embarked on a solo music career, after playing with Ivory Knight since 2000. That band was rated as one Canada's top bands by Brave Words magazine (issue #92) and released two CDs. Rob's latest, entitled KNIGHTFALL, was a collaboration between himself, the former Ivory Knight vocalist, and legendary guitarist/producer, Jeff Waters of Annihilator fame. Rob is available for short-term software projects and recording session work. to inquire, but note that, due to the volume of emails received, he cannot respond to every email. Potential jobs and praise receive highest priority!

Original: April 27, 2009

Social Bookmark


[prev]

Recent Articles

WebReference.com site name
Rolling Out Your Own HTML Application Version Control
HTML 5: Client-side Storage
Working with Ajax Server Extensions
internet.com site name
Wi-Fi Product Watch, November 2009
Chip Market Recovering From '08 Collapse
Low-Cost Tools to Kickstart Your New Business


internet.commediabistro.comJusttechjobs.comGraphics.com

Search:

WebMediaBrands Corporate Info

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs