Here are some usefull Options to tick in the C# 2010 Options Dialog Box
To Show the Configuration and Platform options in the Project property Debug Window
Projects and Solutions - General - Show Advance build configurations
To redirect output to the immediate window
Debbugging - General - Redirect all output window text to the Immediage window
How to change the Exception Handling Options
Tools - Customize - Commands
Menu bar: Debug
Click where you want to put the new Command, in the controls dialog box
Add Command, Debug, Exceptions...
Ok, Close
Showing posts with label options. Show all posts
Showing posts with label options. Show all posts
Tuesday, July 24, 2012
Thursday, June 28, 2012
VBA and VB6 Debugging Options
In this blog post I will explore the VBA Debugging options.
If you go to
Tools - Options - General
You will see the Error Trapping Options
1) Break on All Errors
2) Break in Class Modlue
3) Bread on Unhandled Errors
Depeding on whether you have an error hanler active or not, or if you call the a class of modue function you will get different behavious. Let's test them out.
1) Break on all errors.
Caller is a Sub of Function
It stops at all errors as soon as they occur: ex division by zero or Err.Raise
Caller is an Excel UDF.
The code will NOT STOP. It will just end execution at the point where the error is caused
Excel will Return #VALUE!
2) Break in Class Module
Caller is a Sub or Function
It stops only on Unhandled errors. If it meets an Err.Raise in a Class module it will stop
in any case.
Caller is an Excel UDF
It terminate only on Unhandled errors. If it meets an Err.Raise in a Class modue it will raise
Err.num 440, irrespective or the error number raised. VERY STRANGE
3) Break on Unhandled Errors
Caller is a Sub or Functin or UDF.
It stops only on Unhandler errors.
As you can see Opton number 3 is the one that gives the most consistency, followed by option number 1 and
finally option number 2.
I would recommend to use always "Break on Unhandled Errors" and switch to any of the other two options only if you are debugging difficult code.
Option 2 is interesting especially when you are developing an ActiveX component and you want to stop the debugger in the class.
Again, use "Break on Unhandled Errors" and you will save a lot of time trying to put up with the inconsistency between on how the debbuger behaves in case you are using an Excel UDF or just simply a sub or function.
If you go to
Tools - Options - General
You will see the Error Trapping Options
1) Break on All Errors
2) Break in Class Modlue
3) Bread on Unhandled Errors
Depeding on whether you have an error hanler active or not, or if you call the a class of modue function you will get different behavious. Let's test them out.
1) Break on all errors.
Caller is a Sub of Function
It stops at all errors as soon as they occur: ex division by zero or Err.Raise
Caller is an Excel UDF.
The code will NOT STOP. It will just end execution at the point where the error is caused
Excel will Return #VALUE!
2) Break in Class Module
Caller is a Sub or Function
It stops only on Unhandled errors. If it meets an Err.Raise in a Class module it will stop
in any case.
Caller is an Excel UDF
It terminate only on Unhandled errors. If it meets an Err.Raise in a Class modue it will raise
Err.num 440, irrespective or the error number raised. VERY STRANGE
3) Break on Unhandled Errors
Caller is a Sub or Functin or UDF.
It stops only on Unhandler errors.
As you can see Opton number 3 is the one that gives the most consistency, followed by option number 1 and
finally option number 2.
I would recommend to use always "Break on Unhandled Errors" and switch to any of the other two options only if you are debugging difficult code.
Option 2 is interesting especially when you are developing an ActiveX component and you want to stop the debugger in the class.
Again, use "Break on Unhandled Errors" and you will save a lot of time trying to put up with the inconsistency between on how the debbuger behaves in case you are using an Excel UDF or just simply a sub or function.
Subscribe to:
Posts (Atom)