Python Исключения не распространяются / печатаются, когда они встречаются в цикле Glib / DBUS - PullRequest
0 голосов
/ 15 апреля 2020

Когда ошибка / исключение (например, NameError, потому что я опечатал имя переменной) возникает в notification_filter - информация об ошибке / исключении не распространяется (или перехватывается молча).

Простой пример:

import dbus
from dbus.mainloop.glib import DBusGMainLoop
from gi.repository import GLib

def notification_filter(bus, message):
    raise Exception("This exception is never propagated/printed")

if __name__ == "__main__":        
    DBusGMainLoop(set_as_default=True)

    bus = dbus.SessionBus()
    bus.add_match_string_non_blocking("eavesdrop=true, interface='org.freedesktop.Notifications', member='Notify'")
    bus.add_message_filter(notification_filter)

    mainloop = GLib.MainLoop()
    mainloop.run()

Как я могу распечатать / зарегистрировать информацию при возникновении ошибки / исключения?

...