Microsoft KB Archive/129939

= PRB: Err.Raise Doesn't Always Generate Expected Error =

Article ID: 129939

Article Last Modified on 12/9/2003

-

APPLIES TO


 * Microsoft Visual Basic 4.0 Standard Edition
 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 4.0 Professional Edition
 * Microsoft Visual Basic 4.0 16-bit Enterprise Edition
 * Microsoft Visual Basic 4.0 32-Bit Enterprise Edition

-



This article was previously published under Q129939



SYMPTOMS
Using Err.Raise to generate a specific run-time error may generate a "Application-defined or object-defined error" message rather than the expected text that corresponds to the error number.



CAUSE
Err.Raise only fills in the Source, Description, HelpFile, and HelpContext properties of the Err object for Visual Basic for Applications errors. For other errors, it returns "Application-defined or object-defined error."



STATUS
This behavior is by design.



MORE INFORMATION
Err.Raise is useful for generating errors when writing OLE Automation objects because the Err object gives the programmer and user more information than is possible if you generate errors with the Error statement.

Whether or not to use Err.Raise in code that is not related to OLE Automation depends on if you want the additional information returned by using Err.Raise versus the Error statment. Err.Raise is most useful for providing the user with information on a user-defined error when writing code for an OLE Automation object; it provides the user with information on a user-defined error. Please see the Raise Method topic in the Visual Basic Help menu for an example on using Err.Raise with user-defined errors in an OLE Automation application.

The following example demonstrates the information that can be obtained using Err.Raise such as the Source property, Description property, and other properties of the Err Object. In addition, it shows the differences in behavior of Error.Raise when raising Visual Basic for Applications errors versus non-Visual Basic for Application errors.

Steps to Reproduce Behavior
 Start a new project in Visual Basic. Form1 is created by default.  Add the following code to the Form_Click event procedure: Private Sub Form_Load On Error Resume Next Err.Clear Err.Raise 6 'Err.Raise 381 If Err.Number <> 0 Then Msg = "Error # " & Str(Err.Number) & " was generated by " & _ Err.Source & Chr(13) & Err.Description

MsgBox Msg,, "Error", Err.HelpFile, Err.HelpContext End If  End Sub

 Run the program. The error "Overflow" is correctly generated. Change the line containing "Err.Raise 6" into a comment, and uncomment the line containing "Err.Raise 381". Run the program. Rather than the expected error "Invalid property array index," the error "Application-defined or object-defined error" is generated.</ol>

Visual Basic for Applications Errors
The following is a list of Visual Basic for Applications errors. For a complete list of trappable errors, please search for the "Trappable errors" topic in the Help file.

<pre class="fixed_text">  3      Return without GoSub 5     Invalid procedure call 6     Overflow 7     Out of memory 9     Subscript out of range 10    Duplicate definition 11    Division by zero 12    Precision lost converting Variant 13    Type mismatch 14    Out of string space 16    String expression too complex 17    Can't perform requested operation 18    User interrupt occurred 20    Resume without error 28    Out of stack space 35    Sub or Function not defined 47    Too many DLL application clients 48    Error in loading DLL 49    Bad DLL calling convention 51    Internal error 52    Bad file name or number 53    File not found 54    Bad file mode 55    File already open 57    Device I/O error 58    File already exists 59    Bad record length 61    Disk full 62    Input past end of file 63    Bad record number 67    Too many files 68    Device unavailable 70    Permission denied 71    Disk not ready 74    Can't rename with different drive 75    Path/File access error 76    Path not found 91    Object variable not Set 92    For loop not initialized 93    Invalid pattern string 94    Invalid use of Null 423   Property or method not found 424   Object required 430   Class doesn't support OLE Automation 438   Object doesn't support this property or method 440   OLE Automation error 445   Object doesn't support this action 446   Object doesn't support named arguments 447   Object doesn't support current locale setting 448   Named argument not found 449   Argument not optional 450   Wrong number of arguments 451   Object not a collection 452   Invalid ordinal 453   Function not defined in specified DLL 454   Code resource not found 455   Code resource lock error 456   Get and Put cannot be used with arrays 457   Can't create object

Additional query words: 4.00 vb4win vb4all

Keywords: kbprb KB129939

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.