Changes in v2

Name change

Formerly known as the "SimplyVBA Global Error Handler", the product has now been renamed "vbWatchdog".

Users that purchased the "Lifetime product updates" addon for SimplyVBA will be transferred over to a vbWatchdog license.

For users that didn't purchase the "Lifetime product updates" option for v1, then you can upgrade at a discounted price until 1st November 2010.

Upgrade Price List

Major change to license agreement

vbWatchdog is licensed on a per-developer basis rather than the per-end user basis of SimplyVBA.

We believe this is a better licence model and ultimately this lifts the burden from you having to keep track of the number of end-users that are using your software.

For further information, please refer to the license agreement.

No DLLs required

Unlike v1, vbWatchdog requires no DLL files to be installed on end-user machines.  Instead, everything is coded inside of your VBA project.

Four class modules are added to your application by using the developer AddIn, but then vbWatchdog is completely self contained which makes distribution much easier.

Change to how OnErrorEnd is handled under the Access Runtime environment

This feature is only available in vbWatchdog Enterprise Edition.

The ErrEx.State of OnErrorEnd now prevents the runtime environment from ending abruptly.  This means that global variables values are not lost and that the Access runtime does not close unexpectedly for unhandled errors.

Change to instantiation

Once you've got the ErrEx class modules added to your application, you enable your global error handler routine like so:

    ErrEx.Enable "MyOnErrorRoutine"

Similarly, to disable it's just:


'Live' callstack features

This feature is only available in vbWatchdog Enterprise Edition.

To read the details of the callstack when inside your defined global error handler routine, we us the original ErrEx.Callstack object to iterate programmatically through the callstack.

However, v2 offers a new ErrEx.LiveCallstack object that can be used _outside_ of your global error handler to read the current "live" callstack.

In addition, if you don't wish to have a "global" error handler routine, and just want to read the LiveCallstack details to enhance your existing code with minimal changes, you can now enable vbWatchdog without specifying an "OnError" handler.  You do this by calling ErrEx.Enable with a blank parameter:

    ErrEx.Enable ""

Then, for example, you could use normal local error handling like so:

Public Sub Test()

    On Error Goto ErrorHandler

        Debug.Print 1/0

        Exit Sub

    MsgBox "Error occurred in: " & _
            ErrEx.LiveCallStack.ModuleName & "." & ErrEx.LiveCallStack.ProcedureName

End Sub

As you can see, this gives you the opportunity to stop hard-coding the values and thus makes maintenance easier without having to implement any major changes to your code.

New HTML based error dialog

The new error dialog is much more flexible than the one found in v1. The new dialog uses a basic form of HTML to allow formatting of the dialog contents.

Please see Customizing the Error Dialog for further details.

New ProjectFilterList

Now, vbWatchdog includes a filter that can be used to ignore errors from certain VBA projects.   Without a filter, the Wizards used by Microsoft Access also use VBA, and as such, errors (whether handled or not) would ordinarily pass through your global error handler.  This was the case with v1 of SimplyVBA Global Error Handler.

In v2 we have introduced a filter list that is used to prevent errors from the Access wizards from passing through to your global error handler.  ErrEx.ProjectFilterList is the property to alter if you want to add more project names to the filter list.

'Bookmark' features now deprecated

Although Bookmarks were a powerful feature from v1, they were very difficult to understand and even more difficult to implement.

Bookmarks have now been superseded by the Try-Catch form of handling, which is much easier to implement.

Please note that the Bookmark features are still available for use but are considered deprecated.  Only use for backwards compatibility.