[Fxruby-users] catching exceptions in event handlers
Status: Inactive
Brought to you by:
lyle
|
From: Emmanuel T. <emm...@wa...> - 2003-07-23 09:50:47
|
Hello,
I'm having the problem that my GUI app might have some bugs; in that
case, instead of seeing it exiting violently, dumping the stack on the
command line (which will never be seen by the user in most cases), i would
like to catch the exception and display a nice dialog box.
Wrapping the app.run call (i don't remember how it's called, but it's
something like that) in a begin/rescue block doesn't seem to catch this
exception.
So it would seem i need to wrap each event handler in a begin/rescue
block.
I thought about something like (didn't look at the code, untested
snippet, just to give the idea):
class FXWindow
def connect(event, &block)
begin
super
rescue
FXMessageBox("an error occured, here is the stacktrace, contact
the developer of the application"...)
exit
end
end
end
and the same for other ways to connect the events (ie event tables). i would
put that in a "exceptionfox.rb", and do a "require 'exceptionfox.rb'"
instead of "require 'fox'", so i wouldn't have to change my code. i could
also call a user-defined function when getting an exception.
i didn't try this approach yet (no time). but i'm wondering if it seems
possible, and if there is maybe a better solution?
i'm sure i'm not the first one facing this problem?
thank you,
emmanuel
|