summaryrefslogtreecommitdiff
path: root/src/mbgl/map/map_impl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/map/map_impl.cpp')
-rw-r--r--src/mbgl/map/map_impl.cpp22
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