Мое приложение, конечно, не содержит ошибок, но на всякий случай оно содержит какие-либо нижние значения, которые я хочу добавить в универсальный обработчик исключений, который по крайней мере выведет окно сообщения, чтобы сообщить пользователю о том, какую ошибку сообщать,Поскольку я использую gi-gtk , я полагал, что любые исключения после инициализации будут происходить изнутри функции Gtk.main
, поэтому конец моей функции main
выглядит примерно так:
let executeProgram =
catch Gtk.main $ \e -> do
reportThisBugDialog $ show (e :: SomeException)
-- Code here to try to recover to a known good state
executeProgram
executeProgram
Я также использую Reactive Banana на случай, если это уместно, но это за пределами кода FRP.
Однако это не фиксирует никаких исключений.Я поместил error "Test Exception"
в обработчик «Help About», и моя программа только что вышла с сообщением, напечатанным на консоли (что, конечно, мои пользователи не увидят).
Как перехватить возникающие исключениявнутри моего кода, когда он реагирует на сигналы GTK?