944,066 Members | Top Members by Rank

Ad:
Oct 27th, 2009
0

Try-Catch feature for VB6, VBA, VBScript

Expand Post »
Hi Everyone,

This feauture enables to use "Try" exception handling in VB programs like VB.net Try-Catch statement.
http://sites.google.com/site/truetryforvisualbasic/
I think it's a new way of exception handling in VB 4,5,6, VBA and VBScript.
I'm waiting for opinions.
Last edited by RobEin; Oct 27th, 2009 at 9:33 am.
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
RobEin is offline Offline
6 posts
since Oct 2009
Oct 27th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
I believe you have posted this before and now that you have actually asked for opinions, here we go.

This is not like VB.NET's Try, Catch, Finally as you explicity tell the compiler to ignore errors (On Error Resume Next or On Error GoTo 0)...

The following is VB.NET code with the proper basic Try, Catch, Finally, End Try code in a form load sub.
Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
  1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2. Try
  3.  
  4. Catch ex As Exception
  5. Finally
  6.  
  7. End Try
  8. End Sub
  9. End Class

and while some may think it would be nice to have such error handling in vb6, one can achieve the same with standard vb6 error handling if one thinks about it.



Good Luck
Last edited by vb5prgrmr; Oct 27th, 2009 at 9:39 am.
Reputation Points: 156
Solved Threads: 296
Posting Virtuoso
vb5prgrmr is offline Offline
1,670 posts
since Mar 2009
Oct 27th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
My post was sent for the old VB 4,5,6 and not for VB.net.
I know the syntax of VB.net Try-Catch statement of course and I wrote that my way similar not same.
But it can achieve the almost same essentially.

I realy tell the VB compiler to ignore errors between 'On Error Resume Next' and 'On Error Goto label'.
Do You know other or better way in old VB, VBA, VBScript?
May I ask You, what code do You use for structured exception handling in VB?
Last edited by RobEin; Oct 27th, 2009 at 11:59 am.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
RobEin is offline Offline
6 posts
since Oct 2009
Oct 27th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
I use the standard error handling scheme but then again I also code defensivly...

The basics for debugging are as follows...
Visual Basic 4 / 5 / 6 Syntax (Toggle Plain Text)
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.  
  5. On Error GoTo Form_LoadError
  6.  
  7. Exit Sub
  8. Form_LoadError:
  9.  
  10. MsgBox "Form_Load " & Err.Number & ":" & Err.Description
  11.  
  12. End Sub

This way I know where, #, and description while designing. Once I have finished the code and test the application and know where and what errors might occur, I adjust the code to a more defensive posture.

An example of this might be installing a dir check for a file to see if it exists before trying any type of file operation.

Then there are some errors that just cannot be accounted for like doing a recursive dir search on a hard drive from the root and the dir function coming across a *.sys file and an example on how I get around that can be found here...

http://www.tek-tips.com/viewthread.c...&val=1,1533303

So, if you can see that example the code is not "do this, do that, do the other". It is more like "If I can do this then do it else try to do something else" and so on.



Good Luck
Reputation Points: 156
Solved Threads: 296
Posting Virtuoso
vb5prgrmr is offline Offline
1,670 posts
since Mar 2009
Oct 28th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
It is not structured exception handling.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
RobEin is offline Offline
6 posts
since Oct 2009
Oct 28th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
Then neither is try catch finally...
Reputation Points: 156
Solved Threads: 296
Posting Virtuoso
vb5prgrmr is offline Offline
1,670 posts
since Mar 2009
Nov 7th, 2009
0
Re: Try-Catch feature for VB6, VBA, VBScript
Click to Expand / Collapse  Quote originally posted by vb5prgrmr ...
Then neither is try catch finally...
The finally feature is optional and not required to catch an expected exception (Finally does not exist in C++, for example.).
But it's a possible solution for Finally in VB-Try-Catch:
    With New Try: On Error Resume Next
            Debug.Print 1 / 0 'Division by zero
    .Catch: On Error GoTo 0: Select Case .Number
            Case 11
                MsgBox "Division by zero error."
            Case Else
                MsgBox Err.Description
        End Select
        [...Finally-code...]
    End With
The difference between VB-Try-Finally and other langugage Try-Finally:
If Exit Sub-Function-Property is used in Select-Case statement, the "Finally" section will not be executed.
There may be similarly problems even with Exit For-Do or GoTo or Return statements.
Last edited by RobEin; Nov 7th, 2009 at 2:45 am.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
RobEin is offline Offline
6 posts
since Oct 2009

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in Visual Basic 4 / 5 / 6 Forum Timeline: Need Some Help :)
Next Thread in Visual Basic 4 / 5 / 6 Forum Timeline: Reading from a database





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC