JScript .NET, Part XII: Exception Handling: The try...catch...finally Statement - Doc JavaScript | WebReference

JScript .NET, Part XII: Exception Handling: The try...catch...finally Statement - Doc JavaScript

JScript .NET, Part XII: Exception Handling

The try...catch...finally Statement

Catching errors in JScript .NET is done via three statements: try, catch, and finally. Here is the skeleton of a code block that catches exceptions:

  try {
  } catch(exception) {
  } finally {


  • tryStatements are statements where an error can occur. Optional.
  • exception is any variable name. The initial value of exception is the value of the thrown error. Required.
  • catchStatements are statements to handle errors occurring in the above tryStatements. Optional.
  • finallyStatements are statements that are unconditionally executed after all other error processing has occurred. Optional.

The try...catch...finally statement lets you handle the errors that may occur in the tryStatements. If an error occurs in the tryStatements, program control is passed to catchStatements. The value of exception is the value of the error that occurred in the tryStatements. If no error occurs, catchStatements are not executed. For errors that you don't handle in the catchStatements, JScript .NET provides its normal error message to the user, as if there was no error handling. But remember, avoid showing system errors to the user, as they may give the impression of buggy and sloppy coding.

Sometimes you cannot handle a specific error in the catchStatements associated with the tryStatements where the error occurred. In this case, use the throw statement to re-throw the error to higher-level error handling. A try...catch...finally statement may be nested within a higher-level try statement. When you throw an exception from lower-level catchStatements, it will be caught by the higher level catchStatements.

After all statements in tryStatements have been executed and any error processing has been completed in the catchStatements, finallyStatements are unconditionally executed. The code inside finallyStatements is always executed. Even if the catchStatements re-throws the error or if a return statement occurs inside the catch or try blocks, finallyStatements are guaranteed to run. The only exception is when an unhandled error occurs; in this case, the system processes this run-time error by printing a message to the user and quitting from the JScript .NET application.

Next: How to throw string exceptions I

Produced by Yehuda Shiran and Tomer Shiran
All Rights Reserved. Legal Notices.
Created: September 9, 2002
Revised: September 9, 2002

URL: http://www.webreference.com/js/column118/3.html