D-Bus 1.13.14

Data Structures | Typedefs | Functions

Error reporting

D-Bus low-level public API

Error reporting. More...

Data Structures
struct DBusError
Object representing an exception. More...
Typedefs
typedef struct DBusError DBusError
Mostly-opaque type representing an error that occurred.
Functions
void dbus_error_init (DBusError *error)
Initializes a DBusError structure. More...
void dbus_error_free (DBusError *error)
Frees an error that's been set (or just initialized), then reinitializes the error as in dbus_error_init(). More...
void dbus_set_error_const (DBusError *error, const char *name, const char *message)
Assigns an error name and message to a DBusError. More...
void dbus_move_error (DBusError *src, DBusError *dest)
Moves an error src into dest, freeing src and overwriting dest. More...
dbus_bool_t dbus_error_has_name (const DBusError *error, const char *name)
Checks whether the error is set and has the given name. More...
dbus_bool_t dbus_error_is_set (const DBusError *error)
Checks whether an error occurred (the error is set). More...
void dbus_set_error (DBusError *error, const char *name, const char *format,...)
Assigns an error name and message to a DBusError. More...
void _dbus_set_error_valist (DBusError *error, const char *name, const char *format, va_list args)

Detailed Description

Error reporting.

Types and functions related to reporting errors.

In essence D-Bus error reporting works as follows:

DBusError error;

dbus_error_init (&error);

dbus_some_function (arg1, arg2, &error);

if (dbus_error_is_set (&error))

{

​ fprintf (stderr, "an error occurred: %s\n", error.message);

dbus_error_free (&error);

}

By convention, all functions allow NULL instead of a DBusError*, so callers who don't care about the error can ignore it.

There are some rules. An error passed to a D-Bus function must always be unset; you can't pass in an error that's already set. If a function has a return code indicating whether an error occurred, and also a DBusError parameter, then the error will always be set if and only if the return code indicates an error occurred. i.e. the return code and the error are never going to disagree.

An error only needs to be freed if it's been set, not if it's merely been initialized.

You can check the specific error that occurred using dbus_error_has_name().

Errors will not be set for programming errors, such as passing invalid arguments to the libdbus API. Instead, libdbus will print warnings, exit on a failed assertion, or even crash in those cases (in other words, incorrect use of the API results in undefined behavior, possibly accompanied by helpful debugging output if you're lucky).

Function Documentation

dbus_error_free()

DBUS_EXPORT void dbus_error_free ( DBusError * error )

Frees an error that's been set (or just initialized), then reinitializes the error as in dbus_error_init().

  • Parameters

    ​ errormemory where the error is stored.

Definition at line 211 of file dbus-errors.c.

References DBusRealError::const_message, dbus_error_init(), dbus_free(), DBusRealError::message, DBusRealError::name, and NULL.

Referenced by _dbus_generate_uuid(), _dbus_read_local_machine_uuid(), dbus_get_local_machine_id(), and dbus_move_error().

dbus_error_has_name()

DBUS_EXPORT dbus_bool_t dbus_error_has_name ( const DBusError * error,
const char * name
)

Checks whether the error is set and has the given name.

  • Parameters

    ​ errorthe error namethe name

  • Returns

    TRUE if the given named error occurred

Definition at line 302 of file dbus-errors.c.

References _dbus_assert, _dbus_string_equal(), _dbus_string_init_const(), FALSE, DBusError::message, DBusError::name, and NULL.

Referenced by dbus_get_local_machine_id().

dbus_error_init()

DBUS_EXPORT void dbus_error_init ( DBusError * error )

Initializes a DBusError structure.

Does not allocate any memory; the error only needs to be freed if it is set at some point.

Definition at line 188 of file dbus-errors.c.

Referenced by _dbus_generate_uuid(), _dbus_listen_tcp_socket(), dbus_error_free(), and dbus_move_error().

dbus_error_is_set()

DBUS_EXPORT dbus_bool_t dbus_error_is_set ( const DBusError * error )

Checks whether an error occurred (the error is set).

  • Parameters

    ​ errorthe error object

  • Returns

    TRUE if an error occurred

Definition at line 329 of file dbus-errors.c.

References _dbus_assert, FALSE, DBusError::message, DBusError::name, and NULL.

dbus_move_error()

DBUS_EXPORT void dbus_move_error ( DBusError * src,
DBusError * dest
)

Moves an error src into dest, freeing src and overwriting dest.

Both src and dest must be initialized. src is reinitialized to an empty error. dest may not contain an existing error. If the destination is NULL, just frees and reinits the source error.

  • Parameters

    ​ srcthe source error destthe destination error or NULL

Definition at line 279 of file dbus-errors.c.

References dbus_error_free(), and dbus_error_init().

dbus_set_error()

DBUS_EXPORT void dbus_set_error ( DBusError * error,
const char * name,
const char * format,
...
)

Assigns an error name and message to a DBusError.

Does nothing if error is NULL.

The format may be NULL, which means a (pretty much useless) default message will be deduced from the name. This is not a good idea, just go ahead and provide a useful error message. It won't hurt you.

If no memory can be allocated for the error message, an out-of-memory error message will be set instead.

  • Parameters

    ​ errorthe error.or NULL namethe error name formatprintf-style format string.

Definition at line 354 of file dbus-errors.c.

References NULL.

Referenced by _dbus_babysitter_set_child_exit_error(), _dbus_become_daemon(), _dbus_change_to_daemon_user(), _dbus_check_dir_is_private_to_user(), _dbus_close(), _dbus_close_socket(), _dbus_command_for_pid(), _dbus_connect_exec(), _dbus_create_directory(), _dbus_create_file_exclusively(), _dbus_delete_directory(), _dbus_delete_file(), _dbus_directory_get_next_file(), _dbus_directory_open(), _dbus_dup(), _dbus_ensure_directory(), _dbus_file_get_contents(), _dbus_generate_random_bytes(), _dbus_generate_uuid(), _dbus_is_console_user(), _dbus_keyring_new_for_credentials(), _dbus_listen_systemd_sockets(), _dbus_listen_tcp_socket(), _dbus_lookup_launchd_socket(), _dbus_make_file_world_readable(), _dbus_message_iter_get_args_valist(), _dbus_read_local_machine_uuid(), _dbus_send_credentials_socket(), _dbus_server_listen_platform_specific(), _dbus_server_new_for_domain_socket(), _dbus_server_new_for_launchd(), _dbus_server_new_for_tcp_socket(), _dbus_set_bad_address(), _dbus_set_socket_nonblocking(), _dbus_socketpair(), _dbus_stat(), _dbus_string_save_to_file(), _dbus_transport_new_for_tcp_socket(), _dbus_transport_open_platform_specific(), _dbus_unix_user_is_at_console(), _dbus_user_database_lookup(), _dbus_user_database_lookup_group(), dbus_connection_send_with_reply_and_block(), dbus_message_demarshal(), dbus_parse_address(), dbus_set_error_from_message(), dbus_signature_validate(), dbus_signature_validate_single(), dbus_try_get_local_machine_id(), dbus_validate_bus_name(), dbus_validate_error_name(), dbus_validate_interface(), dbus_validate_member(), dbus_validate_path(), and dbus_validate_utf8().

dbus_set_error_const()

DBUS_EXPORT void dbus_set_error_const ( DBusError * error,
const char * name,
const char * message
)

Assigns an error name and message to a DBusError.

Does nothing if error is NULL. The message may be NULL, which means a default message will be deduced from the name. The default message will be totally useless, though, so using a NULL message is not recommended.

Because this function does not copy the error name or message, you must ensure the name and message are global data that won't be freed. You probably want dbus_set_error() instead, in most cases.

  • Parameters

    ​ errorthe error or NULL namethe error name (not copied!!!) messagethe error message (not copied!!!)

Definition at line 243 of file dbus-errors.c.

References _dbus_assert, DBusError::message, DBusError::name, and NULL.

Referenced by _dbus_get_autolaunch_address(), _dbus_keyring_new_for_credentials(), _dbus_listen_systemd_sockets(), and _dbus_lookup_launchd_socket().


Generated by 1.8.16

Error reporting for dbus的更多相关文章

  1. Eclipse Mars: How to Stop Updating Error Reporting Database

    Eclipse Mars: How to Stop Updating Error Reporting Database I was using Eclise Mars version IDE.. Ev ...

  2. Eclipse Error Reporting Welcome to the Eclipse Error Reporting Service.Do you want to help Eclipse? Enable Disable

    在开发的时候,使用Eclipse IDE,提示如下信息, 这是Eclipse的错误报告,如果不想发送,可以关闭掉,关闭方法: 选择Preferences -> General -> Err ...

  3. 取消Eclipse的Error Reporting

    选择Preferences->General->Error Reporting,Send Mode选择Never send reports

  4. Reporting Services 错误案例一则

    遇到一个有意思的Reporting Services报表的案例,在2015-01-30号的凌晨20分左右的时候,有人发现Reporting Services的速度非常慢,而且最后有抛出异常,当时不知道 ...

  5. Error Handling and Exception

    The default error handling in PHP is very simple.An error message with filename, line number and a m ...

  6. List of 3rd Party .NET UI & Reporting Components

    https://www.codeproject.com/Reference/788434/List-of-rd-Party-NET-UI-Reporting-Components Introducti ...

  7. possible error

    1● regedit 2● path [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Windows Error Reporting]       3● 步 ...

  8. 错误:Eclipse老是出现 updating error reports database

    Eclipse 火星版(Mars)一直出现 updating error reports database. Window--->Preferences--->General---> ...

  9. 关于PHP.INI中的错误ERROR报告级别设置

    最近在写php的过程中发现php提示php notice:………………的字样,虽然这个只是php的提示内容,并没有什么大的影响,但是出于安全性和美观方面的考虑,小弟还是想把这个东西去掉. 那么,怎么办 ...

随机推荐

  1. 如何将dmp文件导入到oracle数据库中

    如何将dmp文件导入到oracle数据库中 1.首先,我们可以先建立自己的一个用户表空间,创建表空间的格式如下: CREATE TABLESPACE certification(表空间的名字) DAT ...

  2. eclipse 整合mybatis的过程

    一.下载mybatis和数据库驱动的jar,我这里用到的数据库是pgAdmin III ,所以我下载的jar包分别为mybatis-3.0.2 jar和po's'tgresql-42.2.1.jar, ...

  3. 4.1Go if-else

    1. Go if-else Golang程序的流程控制决定程序如何执行,主要有三大流程控制,顺序控制.分支控制.循环控制. 条件语句需要定义一个或多个条件,并且对条件测试的true或false来决定是 ...

  4. Maven整合JaCoCo和Sonar,看看你的测试写够了没

    1 简介 单元测试是保证代码质量的重要一环,而如何衡量单元测试写得好不好呢?覆盖率(Coverage)是一个重要指标.而JaCoCo则是专门为Java提供的用于检测测试覆盖率的工具,英文全称为Java ...

  5. ionic + asp.net core webapi + keycloak实现前后端用户认证和自动生成客户端代码

    概述 本文使用ionic/angular开发网页前台,asp.net core webapi开发restful service,使用keycloak保护前台页面和后台服务,并且利用open api自动 ...

  6. vue2.0+mint-ui 仿资讯类顶导航内容联动优化

    <template><div><div class="navbox"><div class="nav" id=&quo ...

  7. python遍历

    实现遍历: #coding=utf-8 #遍历的2种方式 import os #1.使用os.listdir(f) def traverse(f): fs = os.listdir(f) for f1 ...

  8. 前端Json对象与Json字符串互转(4种转换方式)

    1>jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏 ...

  9. java远程执行linux服务器上的shell脚本

    业务场景:需要从服务器A中新增的文件同步至本地服务器,服务器A中内存有限,需同步成功之后清除文件. Java调用远程shell脚本,需要和远程服务器建立ssh链接,再调用指定的shell脚本. 1.创 ...

  10. CSS综合案例

    代码示例:新闻页面: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...