That sounds like a good idea to me; IMHO the exception handling should be 
caught and output with a stack dump (it’s frustrating having to run with catch 
all exceptions turned on)

John

> On 21 May 2015, at 07:19, Florin Jurcovici <florin.jurcov...@gmail.com> wrote:
> 
> Here's a test to describe what happens (sorry for the lost indentation):
> 
> qx.Class.define("com.flj.sketchbook.test.MiscTest",
> {
> extend : qx.dev.unit.TestCase,
>       members :
> {
> "test: 00. exception in event handler breaks event firer": function()
> {
> var listener = new qx.core.Object();
> listener.onEvent = function()
> {
> throw "listener failure which should not break event source";
> }
> var firer = new qx.core.Object();
> firer.completedSuccessfully = false;
> firer.fireEvent = function()
> {
> this.fireDataEvent("testEvent");
> this.completedSuccessfully = true;
> }
> firer.addListener("testEvent", listener.onEvent, listener);
> try
> {
> firer.fireEvent();
> this.assertTrue(firer.completedSuccessfully);
> }
> catch(ex)
> {
> this.fail("Exception propagated :-(");
> }
> }
> }
> });
> 
> My thinking: when you deal with bubbling events, you might want errors to 
> propagate, the same way as native events themselves do, through a hierarchy 
> of nested objects. But with non-bubbling, data-only events, you just want to 
> provide notifications to whoever might be interested in your state changes, 
> you don't want to couple your self to whoever might be interested in 
> listening to your events. If an error occurs, handling it should be the 
> responsibility of whoever listens to your state changes, not yours.
> 
> My impression is that the best place to add this is in 
> qx.core.MEvent.fireDataEvent(), since it's the most specific, highest level.
> 
> Haven't tried out the impact on existing tests so far, but don't expect to be 
> any - since it isn't in place, tests currently must check all errors 
> themselves, so adding a try/catch will not catch anything, for the time being.
> 
> Is this a good idea for a change? If yes, is qx.core.MEvent.fireDataEvent() 
> the right place to put it into? If yes, should I file a bug/submit a 
> patch/submit a pull request? 
> 
> Simple rules (...) lead to complex behavior. Complex rules (...)  lead to 
> stupid behavior. (Getting Real, 37Signals - now Basecamp)
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud 
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y_______________________________________________
> qooxdoo-devel mailing list
> qooxdoo-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel



------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
qooxdoo-devel mailing list
qooxdoo-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/qooxdoo-devel

Reply via email to