Class

ErrorException


Warning

This item was deprecated in version 2021r2 without replacement.

Description

Represents an exception that is not necessarily caused by programmer error but rather something from the OS. A good example is trying to write to a read-only file. Checking the writability in advance introduces a 'time of check to time of use' race condition, so the correct thing actually is to just open it.

Methods

Name

Parameters

Returns

Shared

Constructor

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

Stack

String

StackFrames

StackFrame

Property descriptions


ErrorException.ErrorDomain

ErrorDomain As Text

The error domain for the framework's cross platform error codes, specified using the constants POSIXErrorDomain, WindowsErrorDomain and XojoErrorDomain.

This property is read-only.


ErrorException.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)

ErrorException.Handle

Handle As Ptr

If this exception was created from an NSError on iOS or macOS, this provides access to the NSError.

This property is read-only.


ErrorException.LocalizedReason

LocalizedReason As Text

When available, a localized and user-presentable error message. If no suitable localized message is known, this will be empty.

This property is read-only.


ErrorException.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)

ErrorException.UnderlyingError

UnderlyingError As RuntimeException

The lower level error, if any that triggered this error.

This property is read-only.

Method descriptions


ErrorException.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.


ErrorException.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.


ErrorException.StackFrames

StackFrames As StackFrame

Returns an array containing the stack when the exception was first raised.

Notes

Constants

Name

Type

Description

POSIXErrorDomain

POSIX

The error domain for error codes coming from POSIX functions in the form of errno values (Mac and Linux).

WindowsErrorDomain

Windows

The error domain for error codes coming from Windows functions in the form of HRESULT values.

XojoErrorDomain

Xojo

The error domain for the framework's cross platform error codes.

Compatibility

All project types on all supported operating systems.