diff --git a/lib/mapping/MapFormatJson.cpp b/lib/mapping/MapFormatJson.cpp index 33ff4e340..493477175 100644 --- a/lib/mapping/MapFormatJson.cpp +++ b/lib/mapping/MapFormatJson.cpp @@ -1005,27 +1005,20 @@ void CMapLoaderJson::readTerrainTile(const std::string & src, TerrainTile & tile if (startPos >= src.size()) return; bool hasRoad = true; - //FIXME: check without exceptions? {//road type const std::string typeCode = src.substr(startPos, 2); startPos += 2; - try + tile.roadType = getRoadByCode(typeCode); + if(!tile.roadType) //it's not a road, it's a river { - tile.roadType = getRoadByCode(typeCode); - } - catch (const std::exception&) //it's not a road, it's a river - { - try - { - tile.riverType = getRiverByCode(typeCode); - hasRoad = false; - } - catch (const std::exception&) + tile.roadType = VLC->roadTypeHandler->getById(Road::NO_ROAD); + tile.riverType = getRiverByCode(typeCode); + hasRoad = false; + if(!tile.riverType) { throw std::runtime_error("Invalid river type in " + src); } - - } + } } if (hasRoad) {//road dir