RTI Connext C# API Version 7.3.0
|
How DDS errors are notified as exceptions in the API.
How DDS errors are notified as exceptions in the API.
Most methods in the C# API report errors as exceptions associated with the standard DDS error codes.
The following table associates each DDS error code with an exception:
Error code | Exception |
---|---|
DDS_RETCODE_OK | (No exception) |
DDS_RETCODE_ERROR | Omg.Dds.Core.DdsException |
DDS_RETCODE_NO_DATA | (No exception, usually an empty collection is returned) |
DDS_RETCODE_BAD_PARAM | System.ArgumentException or System.NullArgumentException |
DDS_RETCODE_PRECONDITION_NOT_MET | Omg.Dds.Core.PreconditionNotMetException |
DDS_RETCODE_ILLEGAL_OPERATION | System.InvalidOperationException |
DDS_RETCODE_OUT_OF_RESOURCES | Omg.Dds.Core.OutOfResourcesException |
DDS_RETCODE_NOT_ENABLED | Omg.Dds.Core.NotEnabledException |
DDS_RETCODE_IMMUTABLE_POLICY | Omg.Dds.Core.ImmutablePolicyException |
DDS_RETCODE_INCONSISTENT_POLICY | Omg.Dds.Core.InconsistentPolicyException |
DDS_RETCODE_ALREADY_DELETED | System.ObjectDisposedException |
DDS_RETCODE_TIMEOUT | System.TimeoutException |
DDS_RETCODE_UNSUPPORTED | System.NotSupportedException |
DDS_RETCODE_NOT_ALLOWED_BY_SECURITY | Omg.Dds.Core.NotAllowedBySecurityException |
In most cases, the exception Message
includes additional information about the error. This information may also be logged by Rti.Config.Logger
.
Depending on the verbosity, Rti.Config.Logger
will also log warnings and other informational messages that don't cause an exception.
DomainParticipant
are also logged by Rti.Config.Logger
, but the exception they produce may not include the details in its Message
.Methods and properties never return null to indicate an error. When a method can return null
(for example, Rti.Dds.Domain.DomainParticipant.LookupDataReader()), it is explicitly documented and the method has the attribute [return: MaybeNull]
.
Methods and properties in general don't accept null
arguments either. If an argument of property can be null
(for example Rti.Dds.Core.QosProvider.DefaultProfile), it also documents it and has the [AllowNull]
attribute.