DOCUMENT:Q271764 25-APR-2001 [vbwin]
TITLE :PRB: Application-defined or Object-defined Error in WebClass App
PRODUCT :Microsoft Visual Basic for Windows
PROD/VER::6.0
OPER/SYS:
KEYWORDS:kberrmsg kbVBp600 kbWebClasses kbGrpDSASP kbDSupport
======================================================================
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual Basic Professional Edition for Windows, version 6.0
- Microsoft Visual Basic Enterprise Edition for Windows, version 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
When you view a compiled WebClass (Internet Information Server application) in a
Web browser, you may receive the following error message:
projectname error '800a9c68'
Application-defined or object-defined error
/projectname/pagename.ASP, line 13
CAUSE
=====
This problem is caused by an error in the WebClass code that is not handled by
any error handlers in the WebClass.
When you run the WebClass in debug mode in the Visual Basic Integrated
Development Environment (IDE), the IDE traps the error and displays it in a
message box. After you dismiss the message box, the debugger stops at the line
of code that generates the error.
However, when you compile and browse the WebClass outside of the Visual Basic
IDE, the WebClassRuntime traps the error and logs it in the Application log in
the Event Viewer, along with a second event that indicates the
"Application-defined or object-defined" error.
RESOLUTION
==========
To resolve this problem, you can read the application log and extract the error
message. To do this on Microsoft Windows NT 4.0, perform the following steps:
1. From the Start menu, point to Programs, point to Administrative Tools, and
then click Event Viewer.
2. In the Event Viewer window, on the Log menu, click Application.
3. To view the logs, double-click the entries in the list.
The first log is an error that is generated by the WebClassRuntime and contains
the following text:
The WebClass runtime trapped the following error:
Source: WebClass1
Thread ID: 1256
Description: Application-defined or object-defined error
The second log is a warning from the VBRuntime and contains the actual error
message:
The VB Application identified by the event source logged this Application
Project1:
ThreadID: 354,
Logged: MsgBox: ,Run-Time error '11':
Division by zero
NOTE: Microsoft Windows 2000 does not report the actual error in the event log.
To find the actual error message, you must create your own error handling in
your WebClass procedures. This is also recommended for WebClasses on Windows NT
so that you can produce custom error messages for your customers instead of the
generic "Application-defined or object-defined error." In addition, to make sure
that you catch all errors, you should implement an error handler in all of your
WebClass methods.
To implement error handling in WebClasses, use the following sample code:
Private Sub WebClass_Start()
On Error GoTo ErrorHandler
...
Your code goes here
...
ErrorHandler:
app.logEvent "error in method WebClass_Start: " & Err.Number & " " & Err.Description
Select case Err.Number
Case 11
Response.Write "Your custom error message ..."
Case Else
Response.Write "Your generic error message ..."
End Sub
The App.LogEvent method creates an event log in the application log of the Web
server. The source is the name of your WebClass.
MORE INFORMATION
================
Steps to Reproduce Behavior
---------------------------
1. Create a new WebClass application, and paste the following code into the
WebClass_Start event.
Private Sub WebClass_Start()
Dim i As Integer
i = 1 / 0
End Sub
2. Save the project, and compile the WebClass DLL.
3. On a Web browser, browse to the WebClass.
REFERENCES
==========
For additional information, click the article numbers below to view the articles
in the Microsoft Knowledge Base:
Q189539 INFO: VB 6.0 Readme Part 8: WebClass Designer Issues
Q269797 HOWTO: Create Error Handlers in Visual Basic COM Components
Additional query words: 800a9c68
======================================================================
Keywords : kberrmsg kbVBp600 kbWebClasses kbGrpDSASP kbDSupport
Technology : kbVBSearch kbAudDeveloper kbZNotKeyword6 kbZNotKeyword2 kbVB600Search kbVBA600 kbVB600
Version : :6.0
Issue type : kbprb
=============================================================================
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 2001.