Class
IllegalCastException
Description
Occurs when you attempt to cast a Variant or object to an incompatible object type.
Properties
Name |
Type |
Read-Only |
Shared |
|---|---|---|---|
Methods
Name |
Parameters |
Returns |
Shared |
|---|---|---|---|
Property descriptions
IllegalCastException.ErrorNumber
ErrorNumber As Integer
Used to contain an error number that describes the runtime error.
IllegalCastException.Message
Message As String
Used to contain descriptive text to display when the runtime exception is encountered.
Method descriptions
IllegalCastException.Constructor
Constructor(message As String = "", errorNumber As Integer = 0)
Note
Constructors are special methods called when you create an object with the New keyword and pass in the parameters above.
Used to raise your own RuntimeException with a message and optional error number.
IllegalCastException.Stack
Stack As String()
Returns a String array that contains a list of all of the methods in the stack from the main entrypoint to the point at which the exception was invoked.
The stack contains all the method names up and including the current method name.
This feature only works if the IncludeFunctionNames property on the App object is selected in the Shared Build Settings.
In addition to your own method calls, you will also see framework method calls, but these may not always be completely accurate due to insufficient symbols for the OS to resolve.
IllegalCastException.StackFrames
StackFrames As StackFrame()
Returns an array containing the stack when the exception was first raised.
Notes
An IllegalCastException occurs when you attempt to cast a Variant or object to an incompatible object type. The exception is thrown at the point of the cast itself, regardless of whether any methods or properties are subsequently accessed.
For example, casting a DesktopBevelButton as a DesktopButton throws an IllegalCastException because a DesktopBevelButton is not a DesktopButton.
An IllegalCastException also occurs when assigning a Variant to an incompatible object type:
Try // Variant containing a scalar assigned to an object type
Var v As Variant = 123
Var d As Dictionary = v
Catch Err As IllegalCastException
End Try
Try // Variant containing an object assigned to an incompatible object type
Var v As Variant = New Picture(1, 1)
Var d As Dictionary = v
Catch Err As IllegalCastException
End Try
See TypeMismatchException for the related exception that occurs when assigning a Variant to an incompatible scalar type.
Sample code
This example attempts to cast a DesktopBevelButton as a DesktopButton then call the Press method of the DesktopButton class. This example assumes that there is a DesktopBevelButton called "BevelButton1" in the same window where this code is being called:
Var c As DesktopUIControl
c = BevelButton1
DesktopButton(c).Press
When you test this code in the IDE, execution will stop at the last line and display an IllegalCastException error in your Code editor. If you test the code in a standalone app, the application will display a generic error message and quit when the user clicks OK.
You can handle the error by adding an Exception block to your code:
Var c As DesktopUIControl
c = BevelButton1
DesktopButton(c).Press
Exception err
If err IsA IllegalCastException Then
MessageBox("Trying to recast a DesktopBevelButton as DesktopButton!")
End If
Compatibility
Project Types |
All |
Operating Systems |
All |
See also
RuntimeException parent class; TypeMismatchException; Function, Raise statements; Nil datatype; Exception, Try statements.