有没有办法赶上“无法打开显示$ DISPLAY”的异常?

时间:2014-01-22 09:17:53

标签: gtk x11 gtkmm

我正在创建一个像这样的gtk应用程序:

Glib::RefPtr<Gtk::Application> app;
try {
    app = Gtk::Application::create(argc, argv, "loocal.testgtk",
        Gio::APPLICATION_HANDLES_COMMAND_LINE);
}
catch (...) {
    ....
}

如果X服务器不存在(无法访问),则进程中止,catch(...)部分永远不会被执行。

问:有没有办法阻止中止并抓住这个例外 - 例如重试或连接到后备显示器?

另外:当与X服务器的连接中断时,是否有办法捕获异常 - 为了(尝试)重新启动应用程序的GUI部分并重新连接到X服务器或后备X服务器?

1 个答案:

答案 0 :(得分:2)

如果无法打开显示,默认情况下只需调用exit(1)

如果要覆盖此项,请先执行以下操作。致电gtk_init_check(),然后致电gdk_display_open()gdk_display_manager_set_default_display()