Dojo.stopEvent didn't work due to exception

function connectGenerateChartButton() {
	var buttonNode = dojo.byId("generateChartButton");
	dojo.connect(buttonNode, "onclick", function(evt) {
		console.log("Stop this event from doing a form submit.");
		dojo.stopEvent(evt);
		
		console.log("Publish event for the generate chart button.");
		dojo.publish("generateChart", ["Woohoo!"]);
		
		console.log("Done.");
	});

    dojo.subscribe("generateChart", function(text){
    	generateChart();
    });
}
I am using pub/sub so I can be in a position to unit test my event code.  (I'm decoupling the UI event and the actual business logic.)  I ran into an issue with dojo.stopEvent as shown above.  Originally I had the stopEvent and publish lines switched so I would publish first and then stop the event.  Seems logical right?  I found out that my generateChart function had an exception that propagated out to my onclick handler and my stopEvent code was being skipped because of the exception.  I was getting a post anyway!

So for now I moved my stopEvent to be the first thing in this anon function.  That might be best practice anyway.

Also I need to learn more about exception handling.  I have a try/catch in my "main" function, but maybe that is not enough.

Comments

Popular Posts