Better exception handling in `parallel_for` (#3506)
Better exception handling in `parallel_for` (#3506)

* Added an exception handler to `execute_subrange`, the bound function-runner within `parallel_for`. If a subrange function fails by throwing, then that invocation of `execute_subrange` throws, and after all the threads have complete `parallel_for` also throws.
TileDB-Inc/TileDB,TileDB-Inc/TileDB,TileDB-Inc/TileDB,TileDB-Inc/TileDB