Tips and Tricks of Error Handling in VBScript or in UFT

57
2413
Spread the love
  • 24
  • 28
  • 12
  • 23
  •  
  •  
  •  
  •  
  •  
  •  
    87
    Shares

There are two strategies what we can do with the error:

  • Fix it and get rid of the error
  • Handle it

What is the Global Error Handling Scheme in VBScript/UFT?

The Global Error Handling Scheme includes:

  • Display the error alert
  • Logging mechanism
  • Email the error
  • Better code design in the error-prone area
  • Use of Err object
  • On Error Statement
Display the error alert

In this mechanism, the VBScript engine displays the error as an alert form. For standalone and small script it serves it purpose but not very effective while scripts are running in a batch mode. It often asks to hide the error. If the error could not be hidden, the execution stops and waits for the alert to be closed. This is a major pain point while running scripts in nightly mode or CDCTCI mode.

Logging mechanism

This is a nice feature to log the error to a different file instead of the display as an alert. The different file can be a flat file or an XML or a database or window event log. This process is hugely used in the current automation scenarios but very laid back or reactive approach.

Email the error

This mechanism puts a little dynamic behavior to the error handling as the moment VBScript encounters an error an email gets triggered /fired to the specified group mentioned earlier. The group can decide the fate of the error then and there.

Better code to handle the error phone area

As and when automation gets matured, the automation engineers can decide where to put an extra set of code to protect known error. This extra set of code put a safety net around the risky code. This approach takes some time to mature and has no immediate implementation. This scheme also greatly depends on the code’s experience.

Use of Err Object

Err is an intrinsic object that has global scope. As a result, it is always available with VBScript Engine in the script. There is an Err object always in the memory. We do not need declare and initialize it.As it is already available and attached to our script, we do not need to create one using CreateObject() to create an Err. We also do not need to have a variable to hold this object.

Initially the Err properties are

  • Zero length Strings
  • zero

Once the err gets generated via runtime error,Err.Number contains an integer

Err object holds useful information about the error that occurs during script execution.

The Err objects provide us the following properties:

  • Number– It provides the error information that occurred last.
  • Description-It returns a set of descriptive string associated with an error.By default it is a zero length string.
  • Source- It provides the last known component name from where the error occurred. It provides class name or progID.
  • Help File– It provides the path of the help file that is associated with Windows help file.
  • Help Context– It provides a unique identifier if the error associated with a window help file. It is used very rarely.

The Err object also provides two methods:

  • Clear()- This method clears or erases all properties of an Err object.So it makes Err a zero length String or make it as 0.
  • Raise()-This method helps us to generate a custom runtime error.
Error Number
Err.Number=[errorNumber]
Name SubType Meaning
Err Err Object Err Object
filePath Integer Option pointing to a help file
Error Description syntax
Err.Description=[StringExpression]
Name SubType Meaning
Err Err Object Err Object
StrngExpression String Error description
Source
Err.source=[StrngExpression]
Name SubType Meaning
Err Err Object Err Object
StrngExpression String An application that generates the error.
Help File
Err.HelpFile=[filePath]
Name SubType Meaning
Err Err Object Err Object
filePath Integer Option pointing to a help file
Help Context
Err.HelpContext=[contextID]
Name SubType Meaning
Err Err Object Err Object
contextID Integer Option pointing to a help topic

Details of Clear Method

Clear method has the following strategy to clear an Err object

  • On Error Statement
  • Exit Sub
  • Exit Function

Syntax of clear method

Err.Clear
On Error Statement

On Error is kind of an alternative to try catch. An upgraded error handling mechanism for VBScript or UFT among all other mechanisms.

On Error statement has two flavors

  • On Error GoTo Next
  • On Error GoTo 0
On error GoTo Next

As the name suggests, it suppresses all the errors and transfers the control to the next line. It just tells the VBScript engine to ignore the errors.It suppresses the errors from the whole script (from functions, subs, classes etc). It feels very good to see that the scripts we have written do not have any error but this is very risky in real time scenario. We have to be very sure about the error before suppressing the same.

On Error GoTo Next /On Error Resume Next can be localized just like a variable.This isolates the problem area from the remaining script.

On Error GoTo 0

While On Error Resume Next temporarily disables the error reporting, On Error GoTo 0 immediately enable error reporting. However, even though it is very useful but the automation team uses it very rarely.


Option Explicit
Dim myVar
On Error Resume Next
myVar=getValueFromFlatFile()
If(Err.Number=0) Then
msgbox "No error" +myVar
Else
myDisplayError
End If
on Error GoTo 0
private function getValueFromFlatFile()
Err.Raise VbObjectError+1000,"getValueFromFlatFile","An error has occured"
End Function
private Sub myDisplayError()
msgbox "An error has occured"
End Sub

This code On Error Resume Next and On Error GoTo 0 acts as try-catch block(used to handle error or exception in advanced languages).The code block expects an error from the getValueFromFlatFile() function and traps that.
Err.Number property is responsible for displaying relevant error information about the displaying error.

The guideline for setting up a trap or SafetyNet around the risky Code

  • We can use On Error Resume Next just before the risky code.
  • The risky code produces an ErrNumber as soon as the error occurs. If no error occurs it produces 0(zero).
  • If an error occurs, we need to handle by any mean by using a loop or using email sending feature.
  • Once the error is handled properly, we need to transfer the control back to its normal mode by On Error GoTo 0 statement.

Note:

  • VBScript does not have a generic way of handling Error Exception(just like the Exception class in Java).
  • We can set up multiple error trap to catch multiple errors.
  • Generally, we use Wscript.Quit() method to stop the further execution of the script if we receive an error.
  • In place of WScript.Quit() function we can also call any custom cleanup methods per our need. This is kind of finally block of java.
  • In UFT/QTP we tend to put error handling code in respective functions, which logs and displays the sequential error message. This approach is often criticized as a poor or bad design principal.

What if We do not use Error trapping technique?

In this case, Wscript host(WHS) will take control and will display error when it occurs. This technique gets visible with a popup which will not be doing all cleanup operations.

Don't miss out!
Subscribe To Newsletter

Receive top technical news, lesson ideas, travel tips and more!

Invalid email address
Give it a try. You can unsubscribe at any time.

Spread the love
  • 24
  • 28
  • 12
  • 23
  •  
  •  
  •  
  •  
  •  
  •  
    87
    Shares

57 COMMENTS

  1. What’s up, alwayѕ i used to check webpage posts here early in the morning, since i enjoy to learn more and more.

  2. Ꮋіya! I know this is kinda off topic but I’d figuгed I’d ask.

    Would you be interested in trading links or maybe ɡuеst writing
    a blog article or vice-versa? My site covers a lot of the
    same topics as yours and I think we could greatly benefit fгom each
    otһer. If you might be interested feel free tօ shoot me an email.
    I look forward to һeɑring from you! Ƭerrific blog by the way!

  3. Is primary goal of company earning huge returns?
    Your clients will for you to see the same internet website layout.
    Pick 10-20 publications of one’s topic region and change them in to a
    collection.

    • IsidraFitzmaurice95, Thank you. I am really not looking for huge profit as of right now. I just want to make the website reach in terms of knowledge sharing. However I will surely keep your comment in mind.

      Regards,
      Animesh

  4. I have been browsing online more than 4 hours today, yet I never found any
    interesting article like yours. It’s pretty worth enough for me.
    Personally, if all webmasters and bloggers made good content
    as you did, the web will be much more useful than ever before.
    Howdy! This blog post could not be written any
    better! Looking through this post reminds me of my previous roommate!
    He always kept talking about this. I’ll send this post to him.
    Fairly certain he’s going to have a very good read.

    Thanks for sharing! Howdy just wanted to give you a quick heads up.

    The text in your article seem to be running off the screen in Chrome.
    I’m not sure if this is a formatting issue or something
    to do with internet browser compatibility but I thought
    I’d post to let you know. The design and style look great though!
    Hope you get the problem solved soon. Kudos

  5. Wow! This blog looks exactly like my old one! It’s on a completely different topic but it has pretty
    much the same layout and design. Excellent choice of colors!
    Hello just wanted to give you a quick heads up. The words in your content seem to be running off the screen in Opera.
    I’m not sure if this is a format issue or something to do with web browser
    compatibility but I figured I’d post to let you know.
    The style and design look great though! Hope you get the issue
    resolved soon. Thanks Woah! I’m really digging the template/theme of this site.

    It’s simple, yet effective. A lot of times it’s very difficult to get that “perfect balance”
    between user friendliness and visual appearance.
    I must say you have done a fantastic job with this.
    In addition, the blog loads very quick for me on Opera.
    Superb Blog!

    • Hello Chrinstine,
      I have not checked in Opera till now. Now I got this as a requirement. Surely I will look into this issue. I will rectify if I can.I would suggest to look it at chrome and mozilla.
      Thanks your kind words. It means a lot for a budding blogger like me.

      Regards,
      Animesh

  6. It’s really a great and useful piece of information. I’m glad that you
    simply shared this helpful info with us. Please keep us informed
    like this. Thank you for sharing.

  7. I was curious if you ever thought of changing the layout of your site?
    Its very well written; I love what youve got to say.
    But maybe you could a little more in the way of content so
    people could connect with it better. Youve got an awful lot of text for only having 1 or 2 pictures.

    Maybe you could space it out better?

  8. Wonderful items from you, man. I’ve understand your stuff prior to and you’re simply too wonderful.
    I really like what you’ve acquired right here, really like
    what you are stating and the way in which during which you
    are saying it. You’re making it enjoyable and you continue to care for to stay it sensible.
    I cant wait to learn far more from you. That is actually a tremendous web
    site.

  9. Wоnderful article! This iѕ the kind of info that should be
    shared aroսnd the net. Shame on the sеek engines for not positioning this submit higher!
    Come on over and seek ɑdѵice from mʏ site .
    Ꭲһanks =)

  10. There has been a lot of fuss about SEO or search
    engine optimization. Some would say it would take months and even years to
    be one important the search engines even though some even claim it would certainly
    be just a matter of weeks for you to view results and dominate Google which
    is which?

    Link exchanging with other blogs in which in equivalent market as yours.
    You are unable to want any that price range direct competition with remember.
    This can help you out if these linked sites have a good page ranking in Google
    or other popular search engines.

    The success of your article really depends onto your headline (title).

    This just what the user sees . Make sure you grab their undivided attention so they will want to read
    your article. 75% of as well as effort writing your article often be spent on creating a title.

    Without a successful page, positive if you find it difficult to
    make quick money online. The landing page is come into making cash.

    Don’t give poor effort in completing this method. It is a substantial reason for the downfall many Internet marketing
    campaigns.

    You are afraid to be an expert on google marketing added with these techniques either.
    A person have know basic HTML, you’ll be able to can implement these goes.

    So maybe you should activate with just adding say Meta tags and seeing
    how that gets an outcome when copy and paste a associated with your
    pages text within a search locomotive. Then change the Meta tags to another thing and re-submit your
    pages to figure out. Next time you execute a search
    the new same keyword and key phrase as before, you will have a choice of could be getting
    you the best information.

    Email marketing or advertising. Some online users do don’t
    have much time to check your own everyday notice your
    latest offerings. Bring the content to them, right inside mailbox by
    sending them email advertising.

    For details on the best way to resize your Headline tags and correct use of hyperlinks using
    Dreamweaver booking out our article ‘Optimizing in Dreamweaver for Dummies’.

  11. It’s awesome to pay a quick visit this website and reading the views of all friends regarding this piece of writing, while I am also keen of getting familiarity.

  12. Simply want to say your article is as astonishing. The clearness in your submit is simply nice and that i can suppose you are a professional on this subject. Fine with your permission let me to seize your feed to keep updated with approaching post. Thanks one million and please continue the rewarding work.

  13. I’m extremely impressed with your writing skills as well as with
    the layout on your blog. Is this a paid theme or did you modify it yourself?
    Anyway keep up the nice quality writing, it is rare to see a great
    blog like this one today.

  14. Heya! I know this is somewhat off-topic but I had to
    ask. Does operating a well-established blog such as yours take a
    large amount of work? I am brand new to blogging but I do write in my
    journal daily. I’d like to start a blog so I can share my experience and feelings online.
    Please let me know if you have any kind of ideas or tips
    for brand new aspiring bloggers. Thankyou!

    • Hello friend,
      I do it as part of my learning. The sole objective of this blog is to read and find out the summary and then write it here for my future reference. Now interestingly, this is helping everybody. A kind of free learning. Coming back to your original question if you prepare your blog for money, it may take few months to see actual earnings as you will be focused to post all current topics where CPC will be high. But this is not directly linked to earn money. Hence the earning is in snail’s pace.

      Regards,
      Animesh

  15. Heya great website! Does running a blog such as this
    require a lot of work? I’ve very little understanding of computer programming but I was
    hoping to start my own blog soon. Anyhow, if you have any suggestions or techniques for new blog owners please share.
    I know this is off topic nevertheless I just had to ask.
    Thanks a lot!

    • Hello friend,
      I do it as part of my learning. The sole objective of this blog is to read and find out the summary and then write it here for my future reference. Now interestingly, this is helping everybody. A kind of free learning. Coming back to your original question if you prepare your blog for money, it may take few months to see actual earnings as you will be focused to post all current topics where CPC will be high. But this is not directly linked to earn money. Hence the earning is in snail’s pace.

      Regards,
      Animesh

  16. Way cool, some valid points! I appreciate you making this article available, the rest of the site is also high quality. Have a fun.

  17. Just desire to say your article is as surprising. The clearness on your submit is simply spectacular and that i could think you are knowledgeable on this subject.
    Well together with your permission let me to clutch your feed to stay updated with drawing close post.
    Thanks 1,000,000 and please keep up the enjoyable work.kristy jager

  18. Aw, this was an exceptionally nice post. Spending some time and actual effort to make a great article?
    but what can I say? I put things off a lot and never seem to get nearly anything
    done.jesuscruickshank

  19. Thank you for the auspicious writeup. It in fact was a amusement account
    it. Look advanced to far added agreeable from you!
    However, how could we communicate? clevelandshimizu

  20. Link exchange is nothing else but it is only placing the
    other person’s weblog link on your page at suitable place and other person will also do similar in support of you.charlottehowell

  21. Well I definitely liked reading it. This information offered by you is very practical for accurate planning.alvaromei

  22. Hi there, just became alert to your blog through Google,
    and found that it is really informative. I am
    going to watch out for brussels. I’ll appreciate if you continue this in future.
    Many people will be benefited from your writing. Cheers!

  23. A person essentially lend a hand to make severely articles I might
    state. This is the very first time I frequented your web page and thus
    far? I amazed with the research you made to make this particular publish amazing.

    Fantastic activity!

  24. Howdy! I could have sworn I’ve been to this site before but after looking at many of the articles I realized it’s new to me. Anyways, I’m definitely delighted I discovered it and I’ll be book-marking it and checking back frequently!

  25. Hey there would you mind stating which blog platform you’re working with?
    I’m looking to start my own blog in the near future
    but I’m having a tough time selecting between BlogEngine/Wordpress/B2evolution and Drupal.

    The reason I ask is because your design seems different
    then most blogs and I’m looking for something
    completely unique. P.S Apologies for getting off-topic but I had
    to ask!

  26. I’m impressed, I need to say. Actually not often do I encounter a weblog that’s each educative and entertaining, and let me tell you, you could have hit the nail on the head. Your thought is excellent; the problem is something that not enough persons are speaking intelligently about. I am very completely happy that I stumbled throughout this in my search for one thing relating to this.

  27. Amazing blog! Do you have any helpful hints for aspiring writers?
    I’m hoping to start my own site soon but I’m a little
    lost on everything. Would you suggest starting with a free platform like WordPress or go for a paid option? There are so many choices out there that I’m totally overwhelmed ..

    Any suggestions? Appreciate it!

  28. My partner and I absolutely love your blog and find nearly all of your post’s to be what precisely I’m looking for. Do you offer guest writers to write content available for you? I wouldn’t mind producing a post or elaborating on many of the subjects you write about here. Again, awesome web site!

  29. I just like the helpful info you supply to your articles. I will bookmark your blog and take a look at again right here frequently. I am quite certain I’ll learn many new stuff right right here! Best of luck for the next!

  30. Whats up very nice web site!! Man .. Excellent .. Amazing .. I’ll bookmark your site and take the feeds also…I am glad to find numerous helpful info right here in the publish, we’d like develop extra techniques in this regard, thank you for sharing. . . . . .

  31. Its like you read my mind! You appear to know a lot about this, like you wrote the book in it or something. I think that you can do with a few pics to drive the message home a little bit, but other than that, this is great blog. A fantastic read. I’ll certainly be back.

LEAVE A REPLY

Please enter your comment!
Please enter your name here