September 12, 2002 - JScript .NET's Exception Handling Advantage
September 12, 2002 JScript .NET's Exception Handling Advantage Tips: September 2002
Yehuda Shiran, Ph.D.
|
More often than not, you want to avoid system errors. System messages are usually cryptic and do not make sense for the average user. In fact, system messages are bad for your reputation as a programmer, as they are clear and tangible evidence of your bugs. Naturally, you'll want to avoid these messages by checking for them in your code, before they hit the operating system. Checking for exceptions in your code will surely make it more cumbersome. Mingling error-checking with the normal flow of your code is inevitable when the language does not support exception handling. The following skeleton code checks for two errors: accessing a null object and out of range array element:
var newObject = createObject(dataPiece1, dataPiece2, dataPiece3);
if (newObject == null) {
// do something here when the object was not created
...
}
else {
// getElementIndex return an index or -1 for an error
var index = newObject.getElementIndex();
if (index == -1) {
// handle the error case
...
}
else {
// finally, you can do something with index
...
}
}
The crux of the exception handling support in JScript .NET (as well as in other languages, as explained in Column 38) is the try...catch...finally
statement. The try
keyword precedes a block of normal processing code that may throw an exception. The catch
keyword precedes a block of exception handling code. The finally
keyword precedes a block of code that will always be executed after handling the exceptions. Once an exception is thrown from a try
block, control over the program flow switches to the first catch
block following it. Here is the try...catch...finally
block you may use to mimic the flow above:
try {
var newObject = createObject(dataPiece1, dataPiece2, dataPiece3);
var index = newObject.getElementIndex();
// do something with index
}
catch() {
alert("System Error; Call your sw vendor");
}
finally {
// do nothing
}
To learn more about exception handling, go to Column 118, JScript .NET, Part XII: Exception Handling.