diff --git a/decode.cpp b/decode.cpp index 72e8dc0..f5c0cdd 100644 --- a/decode.cpp +++ b/decode.cpp @@ -11,6 +11,7 @@ #include #include #include +#include #include "mvt.hpp" #include "projection.hpp" #include "geometry.hpp" @@ -49,8 +50,13 @@ void handle(std::string message, int z, unsigned x, unsigned y, int describe) { int within = 0; mvt_tile tile; - if (!tile.decode(message)) { - fprintf(stderr, "Couldn't parse tile %d/%u/%u\n", z, x, y); + try { + if (!tile.decode(message)) { + fprintf(stderr, "Couldn't parse tile %d/%u/%u\n", z, x, y); + exit(EXIT_FAILURE); + } + } catch (protozero::unknown_pbf_wire_type_exception e) { + fprintf(stderr, "PBF decoding error in tile %d/%u/%u\n", z, x, y); exit(EXIT_FAILURE); }