wrap runner.run in exception handler
adds 'action' arg