diff options
Diffstat (limited to 'src/mbgl/map/map_impl.cpp')
-rw-r--r-- | src/mbgl/map/map_impl.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/mbgl/map/map_impl.cpp b/src/mbgl/map/map_impl.cpp index fc67d3cf56..863604f99c 100644 --- a/src/mbgl/map/map_impl.cpp +++ b/src/mbgl/map/map_impl.cpp @@ -2,6 +2,7 @@ #include <mbgl/map/map_impl.hpp> #include <mbgl/renderer/update_parameters.hpp> #include <mbgl/style/style_impl.hpp> +#include <mbgl/util/exception.hpp> namespace mbgl { @@ -97,7 +98,26 @@ void Map::Impl::onStyleLoaded() { } void Map::Impl::onStyleError(std::exception_ptr error) { - observer.onDidFailLoadingMap(error); + MapLoadError type; + std::string description; + + try { + std::rethrow_exception(error); + } catch (const mbgl::util::StyleParseException& e) { + type = MapLoadError::StyleParseError; + description = e.what(); + } catch (const mbgl::util::StyleLoadException& e) { + type = MapLoadError::StyleLoadError; + description = e.what(); + } catch (const mbgl::util::NotFoundException& e) { + type = MapLoadError::NotFoundError; + description = e.what(); + } catch (const std::exception& e) { + type = MapLoadError::UnknownError; + description = e.what(); + } + + observer.onDidFailLoadingMap(type, description); } #pragma mark - Map::Impl RendererObserver |