Class

IllegalCastException


Description

Caused by an attempt to recast an object and then sending it a message that its original type cannot handle.

Properties

Name

Type

Read-Only

Shared

ErrorNumber

Integer

Message

String

Methods

Name

Parameters

Returns

Shared

Constructor

message As String = "", errorCode As Integer = 0

Stack

String

StackFrames

StackFrame

Property descriptions


IllegalCastException.ErrorNumber

ErrorNumber As Integer

Used to contain an error number that describes the runtime error.

The following example displays a message box if, for example, you try to create more than one KeychainItem for the same application.

Var newItem As KeychainItem
If System.KeychainCount > 0 Then
  newItem = New KeychainItem
  // Indicate the name of the application
  newItem.ServiceName = "MyApplication"

  // Create a new keychain item for the application and assign the password
  System.Keychain.AddPassword(newItem, "SecretPassword")
Else
  System.Beep
  MessageBox("You don't have a key chain.")
End If
Exception err As KeychainException
  MessageBox(err.Message + ". Error Code: " + err.ErrorNumber.ToString)

IllegalCastException.Message

Message As String

Used to contain descriptive text to display when the runtime exception is encountered.

The following example displays a message box if, for example, you try to create more than one KeychainItem for the same application.

Var newItem As KeyChainItem
If System.KeyChainCount > 0 Then
  newItem = New KeyChainItem
  // Indicate the name of the application
  newItem.ServiceName = "MyApplication"

  // Create a new keychain item for the application and assign the password
  System.KeyChain.AddPassword(newItem, "SecretPassword")
Else
  System.Beep
  MessageBox("You don't have a key chain.")
End If
Exception err As KeyChainException
  MessageBox(err.Message + ". Error Code: " + err.ErrorNumber.ToString)

Method descriptions


IllegalCastException.Constructor

Constructor(message As String = "", errorCode 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 code.


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 error occurs when you attempt to cast an object to a different type and call a method or access a property belonging only to the original type. For example, if you recast a DesktopBevelButton as a DesktopButton (see the example below) and then call the DesktopButton's Press method, an IllegalCastException will occur because a DesktopBevelButton isn't a DesktopButton and happens not to have a Press method.

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

All project types on all supported operating systems.

See also

RuntimeException parent class; RuntimeException class; Function, Raise statements; Nil datatype; Exception, Try statements.