QDBusError Class
The QDBusError class represents an error received from the D-Bus bus or from remote applications found in the bus. More...
Header: | #include <QDBusError> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake: | QT += dbus |
Public Types
enum | ErrorType { NoError, Other, Failed, NoMemory, ServiceUnknown, …, InvalidInterface } |
Public Functions
bool | isValid() const |
QString | message() const |
QString | name() const |
void | swap(QDBusError &other) |
QDBusError::ErrorType | type() const |
Static Public Members
QString | errorString(QDBusError::ErrorType error) |
Detailed Description
When dealing with the D-Bus bus service or with remote applications over D-Bus, a number of error conditions can happen. This error conditions are sometimes signalled by a returned error value or by a QDBusError.
C++ and Java exceptions are a valid analogy for D-Bus errors: instead of returning normally with a return value, remote applications and the bus may decide to throw an error condition. However, the Qt D-Bus implementation does not use the C++ exception-throwing mechanism, so you will receive QDBusErrors in the return reply (see QDBusReply::error()).
QDBusError objects are used to inspect the error name and message as received from the bus and remote applications. You should not create such objects yourself to signal error conditions when called from D-Bus: instead, use QDBusMessage::createError() and QDBusConnection::send().
See also QDBusConnection::send(), QDBusMessage, and QDBusReply.
Member Type Documentation
enum QDBusError::ErrorType
In order to facilitate verification of the most common D-Bus errors generated by the D-Bus implementation and by the bus daemon itself, QDBusError can be compared to a set of pre-defined values:
Constant | Value | Description |
---|---|---|
QDBusError::NoError | 0 | QDBusError is invalid (i.e., the call succeeded) |
QDBusError::Other | 1 | QDBusError contains an error that is not one of the well-known ones |
QDBusError::Failed | 2 | The call failed (org.freedesktop.DBus.Error.Failed ) |
QDBusError::NoMemory | 3 | Out of memory (org.freedesktop.DBus.Error.NoMemory ) |
QDBusError::ServiceUnknown | 4 | The called service is not known (org.freedesktop.DBus.Error.ServiceUnknown ) |
QDBusError::NoReply | 5 | The called method did not reply within the specified timeout (org.freedesktop.DBus.Error.NoReply ) |
QDBusError::BadAddress | 6 | The address given is not valid (org.freedesktop.DBus.Error.BadAddress ) |
QDBusError::NotSupported | 7 | The call/operation is not supported (org.freedesktop.DBus.Error.NotSupported ) |
QDBusError::LimitsExceeded | 8 | The limits allocated to this process/call/connection exceeded the pre-defined values (org.freedesktop.DBus.Error.LimitsExceeded ) |
QDBusError::AccessDenied | 9 | The call/operation tried to access a resource it isn't allowed to (org.freedesktop.DBus.Error.AccessDenied ) |
QDBusError::NoServer | 10 | Documentation doesn't say what this is for (org.freedesktop.DBus.Error.NoServer ) |
QDBusError::Timeout | 11 | Documentation doesn't say what this is for or how it's used (org.freedesktop.DBus.Error.Timeout ) |
QDBusError::NoNetwork | 12 | Documentation doesn't say what this is for (org.freedesktop.DBus.Error.NoNetwork ) |
QDBusError::AddressInUse | 13 | QDBusServer tried to bind to an address that is already in use (org.freedesktop.DBus.Error.AddressInUse ) |
QDBusError::Disconnected | 14 | The call/process/message was sent after QDBusConnection disconnected (org.freedesktop.DBus.Error.Disconnected ) |
QDBusError::InvalidArgs | 15 | The arguments passed to this call/operation are not valid (org.freedesktop.DBus.Error.InvalidArgs ) |
QDBusError::UnknownMethod | 16 | The method called was not found in this object/interface with the given parameters (org.freedesktop.DBus.Error.UnknownMethod ) |
QDBusError::TimedOut | 17 | Documentation doesn't say... (org.freedesktop.DBus.Error.TimedOut ) |
QDBusError::InvalidSignature | 18 | The type signature is not valid or compatible (org.freedesktop.DBus.Error.InvalidSignature ) |
QDBusError::UnknownInterface | 19 | The interface is not known in this object (org.freedesktop.DBus.Error.UnknownInterface ) |
QDBusError::UnknownObject | 20 | The object path points to an object that does not exist (org.freedesktop.DBus.Error.UnknownObject ) |
QDBusError::UnknownProperty | 21 | The property does not exist in this interface (org.freedesktop.DBus.Error.UnknownProperty ) |
QDBusError::PropertyReadOnly | 22 | The property set failed because the property is read-only (org.freedesktop.DBus.Error.PropertyReadOnly ) |
QDBusError::InternalError | 23 | An internal error occurred |
QDBusError::InvalidObjectPath | 25 | The object path provided is invalid. |
QDBusError::InvalidService | 24 | The service requested is invalid. |
QDBusError::InvalidMember | 27 | The member is invalid. |
QDBusError::InvalidInterface | 26 | The interface is invalid. |
Member Function Documentation
[static]
QString QDBusError::errorString(QDBusError::ErrorType error)
Returns the error name associated with error condition error.
bool QDBusError::isValid() const
Returns true
if this is a valid error condition (i.e., if there was an error), otherwise false.
QString QDBusError::message() const
Returns the message that the callee associated with this error. Error messages are implementation defined and usually contain a human-readable error code, though this does not mean it is suitable for your end-users.
QString QDBusError::name() const
Returns this error's name. Error names are similar to D-Bus Interface names, like org.freedesktop.DBus.InvalidArgs
.
See also type().
void QDBusError::swap(QDBusError &other)
Swaps this error with other. This operation is very fast and never fails.
QDBusError::ErrorType QDBusError::type() const
Returns this error's ErrorType.
See also ErrorType.
© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.