Class
KeychainException
Description
A method of the Keychain or KeychainItem classes failed. See the error code returned by KeychainException to diagnose the problem.
Properties
Name |
Type |
Read-Only |
Shared |
---|---|---|---|
Methods
Name |
Parameters |
Returns |
Shared |
---|---|---|---|
Property descriptions
KeychainException.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)
KeychainException.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
KeychainException.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.
KeychainException.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.
KeychainException.StackFrames
StackFrames As StackFrame()
Returns an array containing the stack when the exception was first raised.
Notes
The following tables shows the values of ErrorNumber and the associated text returned in the Message property.
Error Number |
Message |
---|---|
-128 |
User Cancelled. |
-25291 |
Keychain not available. |
-25292 |
Keychain read only. |
-25293 |
Keychain Authorization failed. |
-25294 |
No such Keychain. |
-25295 |
Invalid Keychain. |
-25296 |
Duplicate Keychain. |
-25797 |
Keychain Duplicate Callback. |
-25298 |
Keychain Invalid Callback. |
-25299 |
Keychain Duplicate Item. |
-25300 |
Keychain Item Not Found. |
-25301 |
Keychain Buffer Too Small. |
-25302 |
Keychain Data Too Large. |
-25303 |
Keychain No Such Attribute. |
-25304 |
Keychain Invalid Item Reference. |
-25305 |
Keychain Invalid Search Reference. |
-25306 |
Keychain No Such Class. |
-25307 |
No Default Keychain. |
-25308 |
Keychain Interaction Not Allowed. |
-25309 |
Keychain Read Only Attribute. |
-25310 |
Wrong Keychain Version. |
-25311 |
Keychain Key Size Not Allowed. |
-25312 |
Keychain No Storage Module. |
-25313 |
Keychain No Certificate Module. |
-25314 |
Keychain No Policy Module. |
-25315 |
Keychain Interaction Required. |
-25316 |
Keychain Data Not Available. |
-25317 |
Keychain Data Not Modifiable. |
-25318 |
Keychain Create Chain Failed. |
Sample code
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"
Try
' Create a new keychain item for the application and assign the password
System.Keychain.AddPassword(newItem, "SecretPassword")
Catch error As KeychainException
MessageBox(error.Message + ". Error Code: " + error.errorNumber.ToString)
End Try
Else
System.Beep
MessageBox("You don't have a key chain.")
End If
The following example uses an Exception block to display a message box if the application specified by ServiceName does not have a KeychainItem.
Var itemToFind As KeychainItem
Var password As String
itemToFind = New KeychainItem
' Indicate the name of the application whose keychain item you wish to find
itemToFind.ServiceName = "MyApplication"
Try
' get application's password from the system keychain
password = System.Keychain.FindPassword(itemToFind)
MessageBox("The password for this item is: " + password)
Catch error As KeychainException
MessageBox("Can't find item: " + error.Message)
End Try
Compatibility
All project types on all supported operating systems.
See also
RuntimeException parent class; Keychain, KeychainItem, RuntimeException classes; System module.