Class
ThreadEndException
Description
A ThreadEndException is raised when a Thread is closing. Usually you do not see the ThreadEndException unless you use a "catch-all" Exception statement.
Properties
Name |
Type |
Read-Only |
Shared |
---|---|---|---|
Methods
Name |
Parameters |
Returns |
Shared |
---|---|---|---|
Property descriptions
ThreadEndException.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)
ThreadEndException.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
ThreadEndException.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.
ThreadEndException.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.
ThreadEndException.StackFrames
StackFrames As StackFrame
Returns an array containing the stack when the exception was first raised.
Notes
Note
Whenever you inadvertently catch an ThreadEndException, you MUST re-raise it. Failing to do so will mess up the runtime environment and lead to unpredictable problems. See Exception statement for more information about its proper use.
An Exception block can catch a ThreadEndException when you use a catch-all exception statement, i.e. "Exception err as RuntimeException" instead of giving a more specific runtime exception class. In such a case, you MUST re-raise the exception to avoid messing up the runtime environment and create some unpredictable problems.
Exception err As RuntimeException // Will catch any exception without discrimination
If err IsA EndException Or err IsA ThreadEndException Then
Raise err // Re-raise the exception
End If
//Continue your code here
Compatibility
All project types on all supported operating systems.
See also
RuntimeException parent class; RuntimeException class; Function, Raise statements; Nil datatype; Exception, Try statements.