GLib:通过UI传播警告错误

时间:2014-06-11 13:38:05

标签: c user-interface error-handling glib

我使用GLib在ANSI C中创建框架。 GError结构提供了一种管理错误的好方法,但我想修改我的print_error宏,以便将错误传播到UI。

' print_error'宏是以下一个:

#define print_error( error ) \
g_assert(error != NULL); \
g_warning("%s", error->message); \
g_error_free(error);

如何为我的目的修改它?

1 个答案:

答案 0 :(得分:1)

保持宏原样,但register a handler会在您的用户界面中显示错误。如何执行此操作取决于您的应用程序,以及您希望如何显示错误。

void my_log_handler (const gchar *log_domain,
                     GLogLevelFlags log_level,
                     const gchar *message,
                     gpointer user_data) {
  // Message contains the error string... put it in your UI here
  popup_error_dialog_or_whatever (message);
}

如何将数据发送到用户界面取决于您的代码,您正在使用的工具包,您希望如何显示它等等。

实际上,我不会按原样保持宏 - I would put it inside of a do...while loop