diff --git a/track_analyzing/log_parser.cpp b/track_analyzing/log_parser.cpp index b7bae3263d..cb2919c652 100644 --- a/track_analyzing/log_parser.cpp +++ b/track_analyzing/log_parser.cpp @@ -27,9 +27,19 @@ vector ReadDataPoints(string const & data) { string const decoded = FromHex(data); vector points; - MemReader memReader(decoded.data(), decoded.size()); - ReaderSource src(memReader); - coding::TrafficGPSEncoder::DeserializeDataPoints(1 /* version */, src, points); + MemReaderWithExceptions memReader(decoded.data(), decoded.size()); + ReaderSource src(memReader); + + try + { + coding::TrafficGPSEncoder::DeserializeDataPoints(1 /* version */, src, points); + } + catch (Reader::SizeException const & e) + { + points.clear(); + LOG(LERROR, ("DataPoint is corrupted. data:", data)); + LOG(LINFO, ("Continue reading...")); + } return points; }