QDBusError 类
QDBusError 类表示从 D-Bus 总线或总线中找到的远程应用程序接收到的错误。 更多...
头文件 | #include <QDBusError> |
CMake | find_package(Qt6 REQUIRED COMPONENTS DBus) target_link_libraries(mytarget PRIVATE Qt6::DBus) |
qmake | QT += dbus |
公开类型
枚举 | ErrorType { NoError, Other, Failed, NoMemory, ServiceUnknown, …, InvalidInterface } |
公开函数
bool | isValid() const |
QString | message() const |
QString | name() const |
void | swap(QDBusError &other) |
QDBusError::ErrorType | type() const |
静态公开成员
QString | errorString(QDBusError::ErrorType error) |
详细描述
处理 D-Bus 总线服务或 D-Bus 上的远程应用程序时,可能会发生许多错误条件。这些错误条件有时通过返回的错误值或通过 QDBusError 来表示。
C++ 和 Java 异常是 D-Bus 错误的有效类比:远程应用程序和总线可以决定抛出错误条件,而不是正常返回一个返回值。然而,Qt D-Bus 实现不使用 C++ 异常抛出机制,因此您将在返回响应中接收 QDBusErrors(参见 QDBusReply::error())。
QDBusError 对象用于检查从总线 和远程应用程序接收到的错误名称和消息。您不应自己创建这类对象来从 D-Bus 调用时表示错误条件:相反,请使用 QDBusMessage::createError() 和 QDBusConnection::send().
参见 QDBusConnection::send,QDBusMessage 和 QDBusReply。
成员类型文档
枚举 QDBusError::ErrorType
为了便于验证由 D-Bus 实现和总线守护程序本身生成的最常见 D-Bus 错误,QDBusError 可以与一组预定义值进行比较
常量 | 值 | 描述 |
---|---|---|
QDBusError::NoError | 0 | QDBusError 无效(即调用成功) |
QDBusError::Other | 1 | QDBusError 包含一个不是已知之一的数据错误 |
QDBusError::Failed | 2 | 调用失败 (org.freedesktop.DBus.Error.Failed ) |
QDBusError::NoMemory | 3 | 内存不足 (org.freedesktop.DBus.Error.NoMemory ) |
QDBusError::ServiceUnknown | 4 | 被调用的服务未知 (org.freedesktop.DBus.Error.ServiceUnknown ) |
QDBusError::NoReply | 5 | 调用方法在指定的超时时间内未回复 (org.freedesktop.DBus.Error.NoReply ) |
QDBusError::BadAddress | 6 | 提供的地址无效 (org.freedesktop.DBus.Error.BadAddress ) |
QDBusError::NotSupported | 7 | 调用/操作不支持 (org.freedesktop.DBus.Error.NotSupported ) |
QDBusError::LimitsExceeded | 8 | 分配给此进程/调用/连接的限制超过了预定义的值 (org.freedesktop.DBus.Error.LimitsExceeded ) |
QDBusError::AccessDenied | 9 | 调用/操作尝试访问不允许其访问的资源 (org.freedesktop.DBus.Error.AccessDenied ) |
QDBusError::NoServer | 10 | 文档未指明这用于什么 (org.freedesktop.DBus.Error.NoServer ) |
QDBusError::Timeout | 11 | 文档未指明这用于什么或如何使用 (org.freedesktop.DBus.Error.Timeout ) |
QDBusError::NoNetwork | 12 | 文档未指明这用于什么 (org.freedesktop.DBus.Error.NoNetwork ) |
QDBusError::AddressInUse | 13 | QDBusServer 尝试绑定一个已使用的地址 (org.freedesktop.DBus.Error.AddressInUse ) |
QDBusError::Disconnected | 14 | 在 QDBusConnection 断开连接后发送了调用/进程/消息 (org.freedesktop.DBus.Error.Disconnected ) |
QDBusError::InvalidArgs | 15 | 传递给此调用/操作的参数无效 (org.freedesktop.DBus.Error.InvalidArgs ) |
QDBusError::UnknownMethod | 16 | 未被在此对象/接口中找到所提供参数的调用方法 (org.freedesktop.DBus.Error.UnknownMethod ) |
QDBusError::TimedOut | 17 | 文档未指明... (org.freedesktop.DBus.Error.TimedOut ) |
QDBusError::InvalidSignature | 18 | 类型签名无效或不兼容 (org.freedesktop.DBus.Error.InvalidSignature ) |
QDBusError::UnknownInterface | 19 | 在此对象中未知的接口 (org.freedesktop.DBus.Error.UnknownInterface ) |
QDBusError::UnknownObject | 20 | 对象路径指向一个不存在的对象 (org.freedesktop.DBus.Error.UnknownObject ) |
QDBusError::UnknownProperty | 21 | 在接口中不存在此属性 (org.freedesktop.DBus.Error.UnknownProperty ) |
QDBusError::PropertyReadOnly | 22 | 设置属性失败,因为该属性是只读的 (org.freedesktop.DBus.Error.PropertyReadOnly ) |
QDBusError::InternalError | 23 | 发生了内部错误 |
QDBusError::InvalidObjectPath | 25 | 提供的对象路径无效。 |
QDBusError::InvalidService | 24 | 请求的服务无效。 |
QDBusError::InvalidMember | 27 | 成员无效。 |
QDBusError::InvalidInterface | 26 | 接口无效。 |
成员函数文档
[静态]
QString QDBusError::errorString(QDBusError::ErrorType error)
返回与错误条件 error 关联的错误名称。
bool QDBusError::isValid() const
如果这是有效的错误条件(即发生了错误),则返回 true
,否则返回 false。
QString QDBusError::message() const
返回与此错误关联的调用者消息。错误消息是实现的,通常包含一个人类可读的错误代码,但这并不意味着它适合您的最终用户。
QString QDBusError::name() const
返回此错误的名称。错误名称类似于 D-Bus 接口名称,例如 org.freedesktop.DBus.InvalidArgs
。
另请参阅类型。
[noexcept]
void QDBusError::swap(QDBusError &other)
交换此 QDBusError 实例与其他实例。
QDBusError::ErrorType QDBusError::type() const
返回此错误的 ErrorType。
另请参阅ErrorType。
© 2024 Qt 公司。此处包含的文档贡献归其各自的拥有者所有。此文档是根据 Free Software Foundation 发布的 GNU 自由文档许可证版本 1.3 的条款授予许可。Qt 和相应的标志是芬兰及/或在全世界其他国家的 Qt 公司的商标。所有其他商标均为其各自所有者的财产。