Agree with @ptgoetz that the function is not invoked: `(:report-error-and-die executor-data)` just returns the function, but not invoked. 

For the decision between `Throwable` and `Exception`, I personally prefer `Exception`, it's safer. If we use `Throwable`, we need to rely on `report-error-and-die` to do the right thing.