Когда ошибка / исключение (например, 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()
Как я могу распечатать / зарегистрировать информацию при возникновении ошибки / исключения?