Vbscript Ppt 3

23
Envision , Evolve, Unleash VB Script Error Handing and Debugging by Srinivas Malkapeta & Prasanna

Transcript of Vbscript Ppt 3

Page 1: Vbscript Ppt 3

Envision , Evolve, Unleash

VB Script

Error Handing and Debugging by Srinivas Malkapeta & Prasanna

Page 2: Vbscript Ppt 3

Agenda

• Error Handling Error Handing is the programmer’s line of defense against this

inherent unpredictability.The term error handing refers not only to how a program responds when an error occurs, but also to how it prevents errors from happening in the first place.

• Debugging Debugging, as the name suggests, is the process of detecting,

locating, and removing bugs from a program.

Page 3: Vbscript Ppt 3

Types of Errors

• Syntax Errors: Syntax errors will halt the execution of the script.

• Runtime Errors: Runtime errors will invoke an error handler, giving you the opportunity to do something about the error-or at least display it attractively.

• Logic Errors: Logical errors will most commonly contaminated data in your application, cause strange behavior for users and administrators, and often cause other errors to occur.

Page 4: Vbscript Ppt 3

Syntax Errors

Before the script is run, the scripting engine parsers all of the code,converting it into tokens.When an unrecognizable structure or an expression is encountered, a syntax error is generated.

Syntax errors tend to popup in several circumstances:• When something is missing from the code-parentheses, keywords

(especially in blocks), statement elements, or when the keyword are simply out of place.

• When a keyword is misspelled or used incorrectly• When you try to use a Visual Basic or VBA keyword or function that

is not implemented by VBScript• When you use keywords that are not supported by a particular

version of the scripting engine (certain keywords may be phased out, and others added)

Page 5: Vbscript Ppt 3

Runtime Errors

• This is the most common type of error is the runtime error. A runtime error occurs when a command attempts to perform an action that is invalid.

• In that the offending code looks syntactically fine to the script engine. Some kind of problem when it is executed. That is, the error does not necessarily appear while you are programming, but rather when you or one of your users is running the script.

• It divided into three categories:» Native VBScript runtime errors.» Non-VBScript runtime errors.» Variable declaration runtime errors related to the Option Explicit

directive.

• Result is same in 3 cases: an error occurs while the script is running. What differs the 3 types is:

» What causes an error.» How an error could be prevented.

Page 6: Vbscript Ppt 3

Runtime Errors

• Native VBScript runtime errors:This raises an error where something that computers don’t like;

dividing by zero

• Non-VBScript runtime errors”:Runtime errors will often come from other sources (scripting hosts,

MS-ADO comp. any script can use err. raise method.

The method of dealing with non-VBScript runtime errors is the same as Native VBScript runtime errors. Ideally the error msg itself will give you enough information to make the cause of the error. Ex:.For MS-ADO specified table is not existed.

• Variable declaration runtime errors related to the Option Explicit directive

For VBScript Prgmer, it is difficult to detect errors that can result from misspellings of variable names and mistakes related to a variable’s scope.

Page 7: Vbscript Ppt 3

Logical errors

• You can think of logic errors as hidden errors. In general it will not produce any kind of err msg. Instead, a logic error will produce what programmers usually call “undesirable results”.

For ex: Sales tax calculations. Miscalculated sales tax can even cause serious legal and financial problems.

• We can prevent some logical errors by clear cut of requirements and design specifications, and some more logical errors can still creep into code. Make use of “plus” operator instead of “minus” or some other operator which is actually have to use.

• Another preventative measure against logic errors is what is known as defensive programming. It is about checking assumptions about the expected program flow and either

1. generating runtime errors 2. Including extra code

• Particularly complex problems in the form of procedures, functions, classes and so on.

Page 8: Vbscript Ppt 3

Error Visibility and Context

A key aspect of understanding and managing runtime errors in knowledge of where your code is running and what happens when an error occurs. Later we will discuss “error handling” techniques, which can be used to catch errors when they occur and control what happens after that point.

• Windows Script Host Errors• Server-Side ASP Errors• Client-Side VBScript Errors in Internet Explorer

Page 9: Vbscript Ppt 3

WSH(Windows Script Host Errors)

• WSH has an automatic error display mechanism. With human operator sitting infront of the computer. If an error occurs, WSH displays it in a dialog box and the human operator decide what to do at that point.

without a human operator, you can control to some degree what happens when an error occurs instead of using WSH’s default error display mechanism. The section Handling errors with various techniques.

Server-Side ASP Errors

A server-side ASP error can occur when IIS is processing ASP code.

Client-Side VBScript Errors in Internet Explorer:

Page 10: Vbscript Ppt 3

Handing Errors

Approach to responding errors.

» Displaying the error to a user.» Logging the error to a file, database, or the WEL» E-mailing the error to SA.» Paging the SA» Some combination of all this

• The Err Object• Using the On Error Statements• Presenting and Logging Errors• Server-Side ASP Errors

Page 11: Vbscript Ppt 3

The Err Object

It is an “intrinsic object with global scope. Always with vb-script code no need to declare a variable to hold an Err object and no need to instantiate it using CreateObject or New. Exactly one Err obj in memory all time .

The Error object contains information about the last error that occurred. The object has two methods.

1. Clear method . ( the last error is thrown away)

Err Object is additionally cleared by any of the followingOn error resume next, On error goto 0,Exit sub, Exit function

2. Raise method. ( which you can use in your VBScript code to generate custom runtime errors. Some main properties to display the information of error are:

Description, Number, Source, HelpFile, HelpContext

Page 12: Vbscript Ppt 3

Using the On error Statements

• Usually by default WSH displays error for script. Checking errors at runtime switch is On every time by using on error resume next switch is off ,if any error that occurs will essentially be ignored. Means it is globally supresses errors for your entire script including procedures, functions, classes. But we can propose the following

two rules.• Unless you have a very good reason, never suppress all

errors by simply placing the On Error Resume next statement at the top of your script.

• On error Resume Next statement to temporarily disable error reporting, make sure you use a corresponding On Error GoTo 0 statement to enable it again.

(If you do not follow the above statement then, without realizing it, suppress error later in your script.

Page 13: Vbscript Ppt 3

Logging Errors

• Beyond displaying the error, you have other options as well. In fact, if your script runs unattended, you might not want to display the error at all since there is no one sitting there to click the OK button. One of the most popular techniques is to log the error to a file, a database, or the Windows Event Log, or e-mail to sys admin, or page to the sys admin.

Page 14: Vbscript Ppt 3

Generating Custom Errors

• Provides ability to “raise” errors yourself. Any vbscript code you write can at any time stop execution and generate an error. The key to this ability is the raise method of the Err object

• Using Err.Raise• When Not to Use Err.Raise• When to Generate Custom Errors

Page 15: Vbscript Ppt 3

Using Err.Raise

• It is always available for global scope. That means you can refer to it any time you want without having to declare a variable for it.

Syntax is:Err. Raise (number, source, description, helpfile, helpcontext)

Ex: Err. raise vbObjectError+ 10000,_ “ MyScript.myFuntion”,” the Age arg of Myfunc may not be greater than 150.”

Error number between 0 and 65535, 0 as the absence of an error.

Adding vbobjecterror to your error num makes sure your error num will not clash with “official microsoft error numbers.

Page 16: Vbscript Ppt 3

When to Generate and Not to Custom Error

Not to Generate

Ex: err.raise vbObjectError+15000, “ERR_MSG_UGLY.VBS”, “Hey, stupid, you can’t enter a zero! It will “ & “cause a divide by zero error!”

To Generate

Ex: err.raise vbObjectError+15000, “ERR_MSG_NICE.Dividenumbers()”, “Divison by zero not allowed”

Page 17: Vbscript Ppt 3

Debugging

What is Debugging?

Page 18: Vbscript Ppt 3

Debugging

Options for Debugging VBScript Code

Page 19: Vbscript Ppt 3

Debugging

Debugging without a Debugger

Page 20: Vbscript Ppt 3

Debugging

Debugging WSH Scripts with the Microsoft Script Debugger

Page 21: Vbscript Ppt 3

Debugging

Debugging Client-Side Web Scripts with the Microsoft Script Debugger

Page 22: Vbscript Ppt 3

Debugging

Debugging ASP with the Microsoft Script Debugger

Page 23: Vbscript Ppt 3

Debugging

Using the Microsoft Script Debugger